Initial version
authorDmitry Shalnov <shalnoff@interplaymedium.org>
Thu, 19 Jul 2012 05:16:24 +0000 (06:16 +0100)
committerDmitry Shalnov <shalnoff@interplaymedium.org>
Thu, 19 Jul 2012 05:16:24 +0000 (06:16 +0100)
README [new file with mode: 0644]
compiled.eep [new file with mode: 0644]
compiled.elf [new file with mode: 0755]
compiled.hex [new file with mode: 0644]
compiled.lss [new file with mode: 0644]
compiled.lst [new file with mode: 0644]
compiled.map [new file with mode: 0644]
flash168 [new file with mode: 0755]
make [new file with mode: 0755]
tetris.c [new file with mode: 0644]

diff --git a/README b/README
new file mode 100644 (file)
index 0000000..67aeeda
--- /dev/null
+++ b/README
@@ -0,0 +1,13 @@
+INSTALLATION
+------------
+Please read wiki to find step by step instrictions
+
+how to compile and flash it to Arduino:
+http://wiki.interplaymedium.org/index.php/InterplayMedium/LEDTetris
+
+General instructions for Adruino + AXOD microserver integration:
+http://wiki.interplaymedium.org/index.php/InterplayMedium/AxonAmpArduino
+
+
+
+
diff --git a/compiled.eep b/compiled.eep
new file mode 100644 (file)
index 0000000..1996e8f
--- /dev/null
@@ -0,0 +1 @@
+:00000001FF\r
diff --git a/compiled.elf b/compiled.elf
new file mode 100755 (executable)
index 0000000..ef44fca
Binary files /dev/null and b/compiled.elf differ
diff --git a/compiled.hex b/compiled.hex
new file mode 100644 (file)
index 0000000..e778121
--- /dev/null
@@ -0,0 +1,236 @@
+:100000000C9434000C9451000C9451000C94510049\r
+:100010000C9451000C9451000C9451000C9451001C\r
+:100020000C9451000C9451000C9451000C9451000C\r
+:100030000C9451000C9451000C9451000C945100FC\r
+:100040000C9451000C9451000C9475000C945100C8\r
+:100050000C9451000C9451000C9451000C945100DC\r
+:100060000C9451000C94510011241FBECFEFD4E02A\r
+:10007000DEBFCDBF11E0A0E0B1E0E2E1FEE002C0F2\r
+:1000800005900D92AA38B107D9F711E0AAE8B1E0BE\r
+:1000900001C01D92AE39B107E1F70E94C6050C946C\r
+:1000A00007070C940000E1ECF0E080818068808319\r
+:1000B00008959093C5008093C40086E08093C200A9\r
+:1000C000E1ECF0E080818861808308958091C00038\r
+:1000D00087FFFCCF8091C6000895982F8091C000C3\r
+:1000E00085FFFCCF9093C60008951F920F920FB624\r
+:1000F0000F9211248F93DF93CF930F92CDB7DEB77A\r
+:100100008091C6008983898180939D010F90CF9152\r
+:10011000DF918F910F900FBE0F901F901895FC01EB\r
+:1001200007C08091C00085FFFCCF9093C600319638\r
+:1001300090819923B1F70895CF93DF93EC0128EED6\r
+:1001400033E0E0E0F0E0CE01B9010E94D206462F94\r
+:100150008091C00085FFFCCF405D4093C6004053B6\r
+:10016000C9016AE070E00E94D2063196E430F105E0\r
+:1001700071F0842F90E0AC01429FC001439F900D2D\r
+:10018000529F900D1124C81BD90B9B01DCCFDF912E\r
+:10019000CF910895DF93CF9300D0CDB7DEB79C0108\r
+:1001A0000FC01A82198205C089819A8101969A83AB\r
+:1001B000898389819A818B359105B1F7215030402F\r
+:1001C0002115310571F70F900F90CF91DF910895B0\r
+:1001D000DF93CF9300D0CDB7DEB79C010EC01A825B\r
+:1001E000198205C089819A8101969A8389838981C0\r
+:1001F0009A810997B9F7215030402115310579F7D7\r
+:100200000F900F90CF91DF910895DF93CF9300D09F\r
+:10021000CDB7DEB740E02A9A21E030E01A82198299\r
+:1002200005C089819A8101969A83898389819A81FF\r
+:100230008B359105B1F72150304081F72A9821E0A4\r
+:1002400030E01A82198205C089819A8101969A83C9\r
+:10025000898389819A818B359105B1F7215030408E\r
+:1002600081F74F5F4436B9F60F900F90CF91DF9131\r
+:100270000895DF93CF9300D0CDB7DEB741E050E0D3\r
+:100280002AC02A9A9A011A82198205C089819A8104\r
+:1002900001969A83898389819A810997B9F72150B8\r
+:1002A000304089F72A989A011A82198205C08981FB\r
+:1002B0009A8101969A83898389819A810997B9F7EE\r
+:1002C0002150304089F76F5F6436D9F6465F5F4F43\r
+:1002D0004932510511F060E0D4CF0F900F90CF91CB\r
+:1002E000DF910895682F27E030E041E050E02C983E\r
+:1002F000CA01022E02C0880F991F0A94E2F78623D2\r
+:1003000011F02B9A01C02B982C9A215030408FEF7E\r
+:100310002F3F380761F708950F931F93CF93DF9313\r
+:10032000162F042F2D9821E030E0C82FD0E008C010\r
+:1003300080E00E94720180E00E94720120E030E0C3\r
+:10034000C217D307ACF3812F0E947201802F04C023\r
+:1003500080E00E94720180E00E94720121971C16C9\r
+:100360001D06B4F32D982D9ADF91CF911F910F9117\r
+:100370000895482F50E0262F30E0653058F484E08F\r
+:1003800090E0821B930B02C0440F551F8A95E2F741\r
+:10039000842F08952450304002C0559547952A95E2\r
+:1003A000E2F7842F08950F931F93CF93DF93C0E05C\r
+:1003B000D0E004E010E080918C01282F30E0C217DB\r
+:1003C000D307ECF0C90103968C179D07C4F0CE014A\r
+:1003D000821B930BE0918401F0E020918B01EE0FE2\r
+:1003E000FF1FEE0FFF1FE20FF11DEE0FFF1FEE0FBD\r
+:1003F000FF1FE80FF91FEC5CFE4FE08101C0E0E059\r
+:10040000809185014E2F50E0282F30E0853048F450\r
+:10041000C801821B930B02C0440F551F8A95E2F757\r
+:1004200007C02450304002C0559547952A95E2F701\r
+:10043000CE018F5F682FFE01EE56FE4F8081482B64\r
+:1004400081E00E948C012196C830D10509F0B3CF1C\r
+:10045000DF91CF911F910F9108951F93CF93DF9359\r
+:1004600010918501812F90E044E050E0481B590B2A\r
+:10047000EC01249780918C0130918B0120918401B3\r
+:10048000E22FF0E0EE0FFF1FEE0FFF1FE30FF11D55\r
+:10049000EE0FFF1FEE0FFF1FEC5CFE4F90E0DC0144\r
+:1004A000AD56BE4FBC0169567E4F8081282F30E08B\r
+:1004B000153038F4042E02C0220F331F0A94E2F7DD\r
+:1004C00006C00C2E02C0359527950A94E2F78C9150\r
+:1004D000282311F081E006C031961196A617B707C0\r
+:1004E00021F780E0DF91CF911F9108951F93CF9363\r
+:1004F000DF9310918501812F90E044E050E0481B8C\r
+:10050000590BEC01249780918C0130918B01209143\r
+:100510008401E22FF0E0EE0FFF1FEE0FFF1FE30F4D\r
+:10052000F11DEE0FFF1FEE0FFF1FEC5CFE4F90E082\r
+:10053000DC01AE56BE4FBC016A567E4F8081282F2B\r
+:1005400030E0153038F4042E02C0220F331F0A9415\r
+:10055000E2F706C00C2E02C0359527950A94E2F703\r
+:100560008C91282311F081E006C031961196A617D0\r
+:10057000B70721F780E0DF91CF911F910895BF92D7\r
+:10058000CF92DF92EF92FF920F931F93CF93DF935F\r
+:1005900050918501852F90E024E030E06901C81A70\r
+:1005A000D90A0CEFE02E0FEFF02EE80EF91EB52E53\r
+:1005B000BA948B2D90E08901081B190BEC0124974C\r
+:1005C00080918C0130918B0120918401E22FF0E029\r
+:1005D000EE0FFF1FEE0FFF1FE30FF11DEE0FFF1FCA\r
+:1005E000EE0FFF1FEC5CFE4F90E0DC01AE56BE4FFD\r
+:1005F000BC016A567E4F4081242F30E0553038F4DC\r
+:100600000C2C02C0220F331F0A94E2F706C00E2CF6\r
+:1006100002C0359527950A94E2F727FD1CC0242FC8\r
+:1006200030E084E08B1538F0002E02C0220F331F1B\r
+:100630000A94E2F706C00C2E02C0359527950A945D\r
+:10064000E2F78C91282339F431961196A617B70753\r
+:1006500091F680E001C081E0DF91CF911F910F9171\r
+:10066000FF90EF90DF90CF90BF900895BF92CF9210\r
+:10067000DF92EF92FF920F931F93CF93DF935091EE\r
+:100680008501852F90E024E030E06901C81AD90A7D\r
+:100690004CEFE42E4FEFF42EE80EF91EB52EB39476\r
+:1006A0008B2D90E08901081B190BEC012497809198\r
+:1006B0008C0130918B0120918401E22FF0E0EE0F4C\r
+:1006C000FF1FEE0FFF1FE30FF11DEE0FFF1FEE0FD9\r
+:1006D000FF1FEC5CFE4F90E0DC01AE56BE4FBC014C\r
+:1006E0006A567E4F4081242F30E0553038F40C2C70\r
+:1006F00002C0220F331F0A94E2F706C00E2C02C07C\r
+:10070000359527950A94E2F720FD1CC0242F30E090\r
+:1007100084E08B1538F0002E02C0220F331F0A949C\r
+:10072000E2F706C00C2E02C0359527950A94E2F731\r
+:100730008C91282339F431961196A617B70791F6B4\r
+:1007400080E001C081E0DF91CF911F910F91FF9078\r
+:10075000EF90DF90CF90BF9008950F931F93CF93AA\r
+:10076000DF9380918B01833010F020E002C0282FAE\r
+:100770002F5F5091840140918501842F90E064E0C7\r
+:1007800070E0681B790B8C010450104080918C0143\r
+:10079000E52FF0E0EE0FFF1FEE0FFF1FE20FF11D40\r
+:1007A000EE0FFF1FEE0FFF1FEC5CFE4F90E0DC0131\r
+:1007B000AE56BE4FEC01CA56DE4F8081282F30E086\r
+:1007C000453038F4062E02C0220F331F0A94E2F798\r
+:1007D00006C0002E02C0359527950A94E2F75130E5\r
+:1007E00031F0523011F0533029F4413099F0483053\r
+:1007F00039F410C0543021F4423061F0473051F0E8\r
+:100800008C91282339F431961196AC17BD07A9F6BF\r
+:1008100080E001C081E0DF91CF911F910F91089599\r
+:10082000CF92DF92EF92FF920F931F93DF93CF93BC\r
+:1008300000D0CDB7DEB780918C01B7E0EB2EE82277\r
+:10084000E39400E010E0869586958695C82EC394C3\r
+:10085000D02E80918C01F801E80FF11DE830F105F0\r
+:100860000CF06BC0EE56FE4F80818F3F09F065C0E3\r
+:10087000FF248C2D6E2D40E00E948C0128EE33E089\r
+:100880001A82198205C089819A8101969A83898387\r
+:1008900089819A818B359105B1F72150304081F7DC\r
+:1008A0008C2D6E2D4FEF0E948C0128EE33E01A82C2\r
+:1008B000198205C089819A8101969A8389838981E9\r
+:1008C0009A818B359105B1F72150304081F7F3942F\r
+:1008D00083E0F81671F690918C019D0D08C0E92F08\r
+:1008E000F0E0EE56FE4F829131968083915099232D\r
+:1008F000B1F70E943901E0E0F1E007C08091C0004B\r
+:1009000085FFFCCF9093C600319690819923B1F773\r
+:10091000809186018F5F8093860181500E949C00A8\r
+:10092000E8E0F1E007C08091C00085FFFCCF909324\r
+:10093000C600319690819923B1F70F5F1F4FE39462\r
+:100940000430110509F084CF0F900F90CF91DF9103\r
+:100950001F910F91FF90EF90DF90CF900895AF928D\r
+:10096000BF92CF92DF92FF920F931F93DF93CF93AB\r
+:1009700000D000D00F92CDB7DEB7DE011396E7E8C6\r
+:10098000F1E083E001900D928150E1F710E01F5FEC\r
+:1009900081E0612F4FEF0E948C0124EF31E01A8239\r
+:1009A000198205C089819A8101969A8389838981F8\r
+:1009B0009A818B359105B1F72150304081F718307D\r
+:1009C00031F702E911E0FF24F39481E06F2D40E05C\r
+:1009D0000E948C01F801108224EF31E01A82198202\r
+:1009E00005C089819A8101969A83898389819A8138\r
+:1009F0008B359105B1F72150304081F70F5F1F4FC4\r
+:100A0000F8E0FF1609F7FF2413E0A12EB12CAC0E7D\r
+:100A1000BD1E32C000E010E0CF2CDD24202F2F5F60\r
+:100A2000C8018C0D9D1D63E070E00E94D206F501A7\r
+:100A3000E80FF91F81E0622F40810E948C010F5F57\r
+:100A40001F4F0830110551F781E08F1510F4FF2476\r
+:100A500001C0F39428EE33E01A82198205C089811F\r
+:100A60009A8101969A83898389819A818B35910530\r
+:100A7000B1F72150304081F780919D01882351F2D8\r
+:100A800081E080938601E2E1F1E007C08091C0003F\r
+:100A900085FFFCCF9093C600319690819923B1F7E2\r
+:100AA00080918D0190918E0165E070E00E94BE06FC\r
+:100AB0008093840110928B010F900F900F900F90F4\r
+:100AC0000F90CF91DF911F910F91FF90DF90CF900A\r
+:100AD000BF90AF9008951F93CF93DF93109185013E\r
+:100AE000812F90E044E050E0481B590BEC01249723\r
+:100AF00080918C0130918B0120918401E22FF0E0F4\r
+:100B0000EE0FFF1FEE0FFF1FE30FF11DEE0FFF1F94\r
+:100B1000EE0FFF1FEC5CFE4F90E0DC01AE56BE4FC7\r
+:100B2000BC016A567E4F8081282F30E0153038F4A2\r
+:100B3000042E02C0220F331F0A94E2F706C00C2EC7\r
+:100B400002C0359527950A94E2F78C91822B8D93FC\r
+:100B50003196A617B70739F70E94100410928C013E\r
+:100B600010928B0184E080938501809191018093A4\r
+:100B700084010E947602813019F00E94D30102C0E4\r
+:100B80000E94AF04DF91CF911F9108951F93239A84\r
+:100B9000259A249A229A81E06091310147E00E94CF\r
+:100BA0008C0181E060912F0140E00E948C0181E086\r
+:100BB0006091320141E00E948C0181E0609133013B\r
+:100BC00040E00E948C0110E01F5F81E0612F40E057\r
+:100BD0000E948C011830C1F781E0609130014FE034\r
+:100BE0000E948C0187E690E09093C5008093C4003A\r
+:100BF00086E08093C2008091C10088618093C1002B\r
+:100C00008091C10080688093C10078948FEF8093B9\r
+:100C10009A0180918D01837080938401E2E1F1E07B\r
+:100C200007C08091C00085FFFCCF9093C60031962D\r
+:100C300090819923B1F760918D0170918E0180911F\r
+:100C40008F019091900120E23EE440E050E00E944C\r
+:100C5000E506611571058105910509F50E94D3012D\r
+:100C60000E942D02813031F080918C018F5F809342\r
+:100C70008C0115C090919B0180919101981719F4F6\r
+:100C80009F5F9093910180919101863010F01092B6\r
+:100C900091018091910180939B010E946B052091AD\r
+:100CA0008D0130918E0140918F01509190012F5F05\r
+:100CB0003F4F4F4F5F4F20938D0130938E014093F4\r
+:100CC0008F015093900190919D0180919C01981704\r
+:100CD00009F4B1CF80919D0180939C01822F837094\r
+:100CE0008093910180919D01833469F40E943603C1\r
+:100CF000813029F0809185018F5F809385010E946A\r
+:100D0000D3010E94050180919D01843469F40E9401\r
+:100D1000BF02813029F08091850181508093850147\r
+:100D20000E94D3010E94050180919D01823469F4E3\r
+:100D30000E942D02813029F080918C018F5F809379\r
+:100D40008C010E94D3010E94050180919D01813494\r
+:100D500091F40E94AD03813071F080918B0183305A\r
+:100D600020F48F5F80938B0102C010928B010E9450\r
+:100D7000D3010E94050110929D015DCFAA1BBB1BF0\r
+:100D800051E107C0AA1FBB1FA617B70710F0A61B8B\r
+:100D9000B70B881F991F5A95A9F780959095BC01AC\r
+:100DA000CD01089597FB092E07260AD077FD04D0C0\r
+:100DB000E5DF06D000201AF4709561957F4F089505\r
+:100DC000F6F7909581959F4F0895A1E21A2EAA1BE0\r
+:100DD000BB1BFD010DC0AA1FBB1FEE1FFF1FA217EB\r
+:100DE000B307E407F50720F0A21BB30BE40BF50BE8\r
+:100DF000661F771F881F991F1A9469F76095709571\r
+:100E0000809590959B01AC01BD01CF010895F894A8\r
+:020E1000FFCF12\r
+:100E120053636F72653A200020202020202020207A\r
+:100E22000D0053636F72653A20303030302020203D\r
+:100E320020202020200D00010203040506070809D6\r
+:100E42000A0B0C0F181800001818000018180000E0\r
+:100E52001818000030180000103020003018000070\r
+:100E62001030200000380800181010002038000050\r
+:100E72001010300010380000103010000038100040\r
+:100E820010181000003C000010101010003C000070\r
+:0A0E9200101010100404012492490E\r
+:00000001FF\r
diff --git a/compiled.lss b/compiled.lss
new file mode 100644 (file)
index 0000000..57e0d88
--- /dev/null
@@ -0,0 +1,1716 @@
+
+compiled.elf:     file format elf32-avr
+
+Sections:
+Idx Name          Size      VMA       LMA       File off  Algn
+  0 .data         0000008a  00800100  00000e12  00000ea6  2**0
+                  CONTENTS, ALLOC, LOAD, DATA
+  1 .text         00000e12  00000000  00000000  00000094  2**1
+                  CONTENTS, ALLOC, LOAD, READONLY, CODE
+  2 .bss          00000014  0080018a  0080018a  00000f30  2**0
+                  ALLOC
+  3 .stab         000006b4  00000000  00000000  00000f30  2**2
+                  CONTENTS, READONLY, DEBUGGING
+  4 .stabstr      00000054  00000000  00000000  000015e4  2**0
+                  CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+   0:  0c 94 34 00     jmp     0x68    ; 0x68 <__ctors_end>
+   4:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+   8:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+   c:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  10:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  14:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  18:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  1c:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  20:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  24:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  28:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  2c:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  30:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  34:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  38:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  3c:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  40:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  44:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  48:  0c 94 75 00     jmp     0xea    ; 0xea <__vector_18>
+  4c:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  50:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  54:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  58:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  5c:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  60:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  64:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+
+00000068 <__ctors_end>:
+  68:  11 24           eor     r1, r1
+  6a:  1f be           out     0x3f, r1        ; 63
+  6c:  cf ef           ldi     r28, 0xFF       ; 255
+  6e:  d4 e0           ldi     r29, 0x04       ; 4
+  70:  de bf           out     0x3e, r29       ; 62
+  72:  cd bf           out     0x3d, r28       ; 61
+
+00000074 <__do_copy_data>:
+  74:  11 e0           ldi     r17, 0x01       ; 1
+  76:  a0 e0           ldi     r26, 0x00       ; 0
+  78:  b1 e0           ldi     r27, 0x01       ; 1
+  7a:  e2 e1           ldi     r30, 0x12       ; 18
+  7c:  fe e0           ldi     r31, 0x0E       ; 14
+  7e:  02 c0           rjmp    .+4             ; 0x84 <.do_copy_data_start>
+
+00000080 <.do_copy_data_loop>:
+  80:  05 90           lpm     r0, Z+
+  82:  0d 92           st      X+, r0
+
+00000084 <.do_copy_data_start>:
+  84:  aa 38           cpi     r26, 0x8A       ; 138
+  86:  b1 07           cpc     r27, r17
+  88:  d9 f7           brne    .-10            ; 0x80 <.do_copy_data_loop>
+
+0000008a <__do_clear_bss>:
+  8a:  11 e0           ldi     r17, 0x01       ; 1
+  8c:  aa e8           ldi     r26, 0x8A       ; 138
+  8e:  b1 e0           ldi     r27, 0x01       ; 1
+  90:  01 c0           rjmp    .+2             ; 0x94 <.do_clear_bss_start>
+
+00000092 <.do_clear_bss_loop>:
+  92:  1d 92           st      X+, r1
+
+00000094 <.do_clear_bss_start>:
+  94:  ae 39           cpi     r26, 0x9E       ; 158
+  96:  b1 07           cpc     r27, r17
+  98:  e1 f7           brne    .-8             ; 0x92 <.do_clear_bss_loop>
+  9a:  0e 94 c6 05     call    0xb8c   ; 0xb8c <main>
+  9e:  0c 94 07 07     jmp     0xe0e   ; 0xe0e <_exit>
+
+000000a2 <__bad_interrupt>:
+  a2:  0c 94 00 00     jmp     0       ; 0x0 <__vectors>
+
+000000a6 <setRXCIE_USART0>:
+  a6:  e1 ec           ldi     r30, 0xC1       ; 193
+  a8:  f0 e0           ldi     r31, 0x00       ; 0
+  aa:  80 81           ld      r24, Z
+  ac:  80 68           ori     r24, 0x80       ; 128
+  ae:  80 83           st      Z, r24
+  b0:  08 95           ret
+
+000000b2 <init_USART0>:
+  b2:  90 93 c5 00     sts     0x00C5, r25
+  b6:  80 93 c4 00     sts     0x00C4, r24
+  ba:  86 e0           ldi     r24, 0x06       ; 6
+  bc:  80 93 c2 00     sts     0x00C2, r24
+  c0:  e1 ec           ldi     r30, 0xC1       ; 193
+  c2:  f0 e0           ldi     r31, 0x00       ; 0
+  c4:  80 81           ld      r24, Z
+  c6:  88 61           ori     r24, 0x18       ; 24
+  c8:  80 83           st      Z, r24
+  ca:  08 95           ret
+
+000000cc <receive_1byte_USART0>:
+  cc:  80 91 c0 00     lds     r24, 0x00C0
+  d0:  87 ff           sbrs    r24, 7
+  d2:  fc cf           rjmp    .-8             ; 0xcc <receive_1byte_USART0>
+  d4:  80 91 c6 00     lds     r24, 0x00C6
+  d8:  08 95           ret
+
+000000da <transmit_1byte_USART0>:
+  da:  98 2f           mov     r25, r24
+  dc:  80 91 c0 00     lds     r24, 0x00C0
+  e0:  85 ff           sbrs    r24, 5
+  e2:  fc cf           rjmp    .-8             ; 0xdc <transmit_1byte_USART0+0x2>
+  e4:  90 93 c6 00     sts     0x00C6, r25
+  e8:  08 95           ret
+
+000000ea <__vector_18>:
+  ea:  1f 92           push    r1
+  ec:  0f 92           push    r0
+  ee:  0f b6           in      r0, 0x3f        ; 63
+  f0:  0f 92           push    r0
+  f2:  11 24           eor     r1, r1
+  f4:  8f 93           push    r24
+  f6:  df 93           push    r29
+  f8:  cf 93           push    r28
+  fa:  0f 92           push    r0
+  fc:  cd b7           in      r28, 0x3d       ; 61
+  fe:  de b7           in      r29, 0x3e       ; 62
+ 100:  80 91 c6 00     lds     r24, 0x00C6
+ 104:  89 83           std     Y+1, r24        ; 0x01
+ 106:  89 81           ldd     r24, Y+1        ; 0x01
+ 108:  80 93 9d 01     sts     0x019D, r24
+ 10c:  0f 90           pop     r0
+ 10e:  cf 91           pop     r28
+ 110:  df 91           pop     r29
+ 112:  8f 91           pop     r24
+ 114:  0f 90           pop     r0
+ 116:  0f be           out     0x3f, r0        ; 63
+ 118:  0f 90           pop     r0
+ 11a:  1f 90           pop     r1
+ 11c:  18 95           reti
+
+0000011e <transmit_str_USART0>:
+ 11e:  fc 01           movw    r30, r24
+ 120:  07 c0           rjmp    .+14            ; 0x130 <transmit_str_USART0+0x12>
+ 122:  80 91 c0 00     lds     r24, 0x00C0
+ 126:  85 ff           sbrs    r24, 5
+ 128:  fc cf           rjmp    .-8             ; 0x122 <transmit_str_USART0+0x4>
+ 12a:  90 93 c6 00     sts     0x00C6, r25
+ 12e:  31 96           adiw    r30, 0x01       ; 1
+ 130:  90 81           ld      r25, Z
+ 132:  99 23           and     r25, r25
+ 134:  b1 f7           brne    .-20            ; 0x122 <transmit_str_USART0+0x4>
+ 136:  08 95           ret
+
+00000138 <transmit_4digit_USART0>:
+ 138:  cf 93           push    r28
+ 13a:  df 93           push    r29
+ 13c:  ec 01           movw    r28, r24
+ 13e:  28 ee           ldi     r18, 0xE8       ; 232
+ 140:  33 e0           ldi     r19, 0x03       ; 3
+ 142:  e0 e0           ldi     r30, 0x00       ; 0
+ 144:  f0 e0           ldi     r31, 0x00       ; 0
+ 146:  ce 01           movw    r24, r28
+ 148:  b9 01           movw    r22, r18
+ 14a:  0e 94 d2 06     call    0xda4   ; 0xda4 <__divmodhi4>
+ 14e:  46 2f           mov     r20, r22
+ 150:  80 91 c0 00     lds     r24, 0x00C0
+ 154:  85 ff           sbrs    r24, 5
+ 156:  fc cf           rjmp    .-8             ; 0x150 <transmit_4digit_USART0+0x18>
+ 158:  40 5d           subi    r20, 0xD0       ; 208
+ 15a:  40 93 c6 00     sts     0x00C6, r20
+ 15e:  40 53           subi    r20, 0x30       ; 48
+ 160:  c9 01           movw    r24, r18
+ 162:  6a e0           ldi     r22, 0x0A       ; 10
+ 164:  70 e0           ldi     r23, 0x00       ; 0
+ 166:  0e 94 d2 06     call    0xda4   ; 0xda4 <__divmodhi4>
+ 16a:  31 96           adiw    r30, 0x01       ; 1
+ 16c:  e4 30           cpi     r30, 0x04       ; 4
+ 16e:  f1 05           cpc     r31, r1
+ 170:  71 f0           breq    .+28            ; 0x18e <transmit_4digit_USART0+0x56>
+ 172:  84 2f           mov     r24, r20
+ 174:  90 e0           ldi     r25, 0x00       ; 0
+ 176:  ac 01           movw    r20, r24
+ 178:  42 9f           mul     r20, r18
+ 17a:  c0 01           movw    r24, r0
+ 17c:  43 9f           mul     r20, r19
+ 17e:  90 0d           add     r25, r0
+ 180:  52 9f           mul     r21, r18
+ 182:  90 0d           add     r25, r0
+ 184:  11 24           eor     r1, r1
+ 186:  c8 1b           sub     r28, r24
+ 188:  d9 0b           sbc     r29, r25
+ 18a:  9b 01           movw    r18, r22
+ 18c:  dc cf           rjmp    .-72            ; 0x146 <transmit_4digit_USART0+0xe>
+ 18e:  df 91           pop     r29
+ 190:  cf 91           pop     r28
+ 192:  08 95           ret
+
+00000194 <delay_ms>:
+ 194:  df 93           push    r29
+ 196:  cf 93           push    r28
+ 198:  00 d0           rcall   .+0             ; 0x19a <delay_ms+0x6>
+ 19a:  cd b7           in      r28, 0x3d       ; 61
+ 19c:  de b7           in      r29, 0x3e       ; 62
+ 19e:  9c 01           movw    r18, r24
+ 1a0:  0f c0           rjmp    .+30            ; 0x1c0 <delay_ms+0x2c>
+ 1a2:  1a 82           std     Y+2, r1 ; 0x02
+ 1a4:  19 82           std     Y+1, r1 ; 0x01
+ 1a6:  05 c0           rjmp    .+10            ; 0x1b2 <delay_ms+0x1e>
+ 1a8:  89 81           ldd     r24, Y+1        ; 0x01
+ 1aa:  9a 81           ldd     r25, Y+2        ; 0x02
+ 1ac:  01 96           adiw    r24, 0x01       ; 1
+ 1ae:  9a 83           std     Y+2, r25        ; 0x02
+ 1b0:  89 83           std     Y+1, r24        ; 0x01
+ 1b2:  89 81           ldd     r24, Y+1        ; 0x01
+ 1b4:  9a 81           ldd     r25, Y+2        ; 0x02
+ 1b6:  8b 35           cpi     r24, 0x5B       ; 91
+ 1b8:  91 05           cpc     r25, r1
+ 1ba:  b1 f7           brne    .-20            ; 0x1a8 <delay_ms+0x14>
+ 1bc:  21 50           subi    r18, 0x01       ; 1
+ 1be:  30 40           sbci    r19, 0x00       ; 0
+ 1c0:  21 15           cp      r18, r1
+ 1c2:  31 05           cpc     r19, r1
+ 1c4:  71 f7           brne    .-36            ; 0x1a2 <delay_ms+0xe>
+ 1c6:  0f 90           pop     r0
+ 1c8:  0f 90           pop     r0
+ 1ca:  cf 91           pop     r28
+ 1cc:  df 91           pop     r29
+ 1ce:  08 95           ret
+
+000001d0 <delay_ns>:
+ 1d0:  df 93           push    r29
+ 1d2:  cf 93           push    r28
+ 1d4:  00 d0           rcall   .+0             ; 0x1d6 <delay_ns+0x6>
+ 1d6:  cd b7           in      r28, 0x3d       ; 61
+ 1d8:  de b7           in      r29, 0x3e       ; 62
+ 1da:  9c 01           movw    r18, r24
+ 1dc:  0e c0           rjmp    .+28            ; 0x1fa <delay_ns+0x2a>
+ 1de:  1a 82           std     Y+2, r1 ; 0x02
+ 1e0:  19 82           std     Y+1, r1 ; 0x01
+ 1e2:  05 c0           rjmp    .+10            ; 0x1ee <delay_ns+0x1e>
+ 1e4:  89 81           ldd     r24, Y+1        ; 0x01
+ 1e6:  9a 81           ldd     r25, Y+2        ; 0x02
+ 1e8:  01 96           adiw    r24, 0x01       ; 1
+ 1ea:  9a 83           std     Y+2, r25        ; 0x02
+ 1ec:  89 83           std     Y+1, r24        ; 0x01
+ 1ee:  89 81           ldd     r24, Y+1        ; 0x01
+ 1f0:  9a 81           ldd     r25, Y+2        ; 0x02
+ 1f2:  09 97           sbiw    r24, 0x09       ; 9
+ 1f4:  b9 f7           brne    .-18            ; 0x1e4 <delay_ns+0x14>
+ 1f6:  21 50           subi    r18, 0x01       ; 1
+ 1f8:  30 40           sbci    r19, 0x00       ; 0
+ 1fa:  21 15           cp      r18, r1
+ 1fc:  31 05           cpc     r19, r1
+ 1fe:  79 f7           brne    .-34            ; 0x1de <delay_ns+0xe>
+ 200:  0f 90           pop     r0
+ 202:  0f 90           pop     r0
+ 204:  cf 91           pop     r28
+ 206:  df 91           pop     r29
+ 208:  08 95           ret
+
+0000020a <beep>:
+ 20a:  df 93           push    r29
+ 20c:  cf 93           push    r28
+ 20e:  00 d0           rcall   .+0             ; 0x210 <beep+0x6>
+ 210:  cd b7           in      r28, 0x3d       ; 61
+ 212:  de b7           in      r29, 0x3e       ; 62
+ 214:  40 e0           ldi     r20, 0x00       ; 0
+ 216:  2a 9a           sbi     0x05, 2 ; 5
+ 218:  21 e0           ldi     r18, 0x01       ; 1
+ 21a:  30 e0           ldi     r19, 0x00       ; 0
+ 21c:  1a 82           std     Y+2, r1 ; 0x02
+ 21e:  19 82           std     Y+1, r1 ; 0x01
+ 220:  05 c0           rjmp    .+10            ; 0x22c <beep+0x22>
+ 222:  89 81           ldd     r24, Y+1        ; 0x01
+ 224:  9a 81           ldd     r25, Y+2        ; 0x02
+ 226:  01 96           adiw    r24, 0x01       ; 1
+ 228:  9a 83           std     Y+2, r25        ; 0x02
+ 22a:  89 83           std     Y+1, r24        ; 0x01
+ 22c:  89 81           ldd     r24, Y+1        ; 0x01
+ 22e:  9a 81           ldd     r25, Y+2        ; 0x02
+ 230:  8b 35           cpi     r24, 0x5B       ; 91
+ 232:  91 05           cpc     r25, r1
+ 234:  b1 f7           brne    .-20            ; 0x222 <beep+0x18>
+ 236:  21 50           subi    r18, 0x01       ; 1
+ 238:  30 40           sbci    r19, 0x00       ; 0
+ 23a:  81 f7           brne    .-32            ; 0x21c <beep+0x12>
+ 23c:  2a 98           cbi     0x05, 2 ; 5
+ 23e:  21 e0           ldi     r18, 0x01       ; 1
+ 240:  30 e0           ldi     r19, 0x00       ; 0
+ 242:  1a 82           std     Y+2, r1 ; 0x02
+ 244:  19 82           std     Y+1, r1 ; 0x01
+ 246:  05 c0           rjmp    .+10            ; 0x252 <beep+0x48>
+ 248:  89 81           ldd     r24, Y+1        ; 0x01
+ 24a:  9a 81           ldd     r25, Y+2        ; 0x02
+ 24c:  01 96           adiw    r24, 0x01       ; 1
+ 24e:  9a 83           std     Y+2, r25        ; 0x02
+ 250:  89 83           std     Y+1, r24        ; 0x01
+ 252:  89 81           ldd     r24, Y+1        ; 0x01
+ 254:  9a 81           ldd     r25, Y+2        ; 0x02
+ 256:  8b 35           cpi     r24, 0x5B       ; 91
+ 258:  91 05           cpc     r25, r1
+ 25a:  b1 f7           brne    .-20            ; 0x248 <beep+0x3e>
+ 25c:  21 50           subi    r18, 0x01       ; 1
+ 25e:  30 40           sbci    r19, 0x00       ; 0
+ 260:  81 f7           brne    .-32            ; 0x242 <beep+0x38>
+ 262:  4f 5f           subi    r20, 0xFF       ; 255
+ 264:  44 36           cpi     r20, 0x64       ; 100
+ 266:  b9 f6           brne    .-82            ; 0x216 <beep+0xc>
+ 268:  0f 90           pop     r0
+ 26a:  0f 90           pop     r0
+ 26c:  cf 91           pop     r28
+ 26e:  df 91           pop     r29
+ 270:  08 95           ret
+
+00000272 <bleepBleepSound>:
+ 272:  df 93           push    r29
+ 274:  cf 93           push    r28
+ 276:  00 d0           rcall   .+0             ; 0x278 <bleepBleepSound+0x6>
+ 278:  cd b7           in      r28, 0x3d       ; 61
+ 27a:  de b7           in      r29, 0x3e       ; 62
+ 27c:  41 e0           ldi     r20, 0x01       ; 1
+ 27e:  50 e0           ldi     r21, 0x00       ; 0
+ 280:  2a c0           rjmp    .+84            ; 0x2d6 <bleepBleepSound+0x64>
+ 282:  2a 9a           sbi     0x05, 2 ; 5
+ 284:  9a 01           movw    r18, r20
+ 286:  1a 82           std     Y+2, r1 ; 0x02
+ 288:  19 82           std     Y+1, r1 ; 0x01
+ 28a:  05 c0           rjmp    .+10            ; 0x296 <bleepBleepSound+0x24>
+ 28c:  89 81           ldd     r24, Y+1        ; 0x01
+ 28e:  9a 81           ldd     r25, Y+2        ; 0x02
+ 290:  01 96           adiw    r24, 0x01       ; 1
+ 292:  9a 83           std     Y+2, r25        ; 0x02
+ 294:  89 83           std     Y+1, r24        ; 0x01
+ 296:  89 81           ldd     r24, Y+1        ; 0x01
+ 298:  9a 81           ldd     r25, Y+2        ; 0x02
+ 29a:  09 97           sbiw    r24, 0x09       ; 9
+ 29c:  b9 f7           brne    .-18            ; 0x28c <bleepBleepSound+0x1a>
+ 29e:  21 50           subi    r18, 0x01       ; 1
+ 2a0:  30 40           sbci    r19, 0x00       ; 0
+ 2a2:  89 f7           brne    .-30            ; 0x286 <bleepBleepSound+0x14>
+ 2a4:  2a 98           cbi     0x05, 2 ; 5
+ 2a6:  9a 01           movw    r18, r20
+ 2a8:  1a 82           std     Y+2, r1 ; 0x02
+ 2aa:  19 82           std     Y+1, r1 ; 0x01
+ 2ac:  05 c0           rjmp    .+10            ; 0x2b8 <bleepBleepSound+0x46>
+ 2ae:  89 81           ldd     r24, Y+1        ; 0x01
+ 2b0:  9a 81           ldd     r25, Y+2        ; 0x02
+ 2b2:  01 96           adiw    r24, 0x01       ; 1
+ 2b4:  9a 83           std     Y+2, r25        ; 0x02
+ 2b6:  89 83           std     Y+1, r24        ; 0x01
+ 2b8:  89 81           ldd     r24, Y+1        ; 0x01
+ 2ba:  9a 81           ldd     r25, Y+2        ; 0x02
+ 2bc:  09 97           sbiw    r24, 0x09       ; 9
+ 2be:  b9 f7           brne    .-18            ; 0x2ae <bleepBleepSound+0x3c>
+ 2c0:  21 50           subi    r18, 0x01       ; 1
+ 2c2:  30 40           sbci    r19, 0x00       ; 0
+ 2c4:  89 f7           brne    .-30            ; 0x2a8 <bleepBleepSound+0x36>
+ 2c6:  6f 5f           subi    r22, 0xFF       ; 255
+ 2c8:  64 36           cpi     r22, 0x64       ; 100
+ 2ca:  d9 f6           brne    .-74            ; 0x282 <bleepBleepSound+0x10>
+ 2cc:  46 5f           subi    r20, 0xF6       ; 246
+ 2ce:  5f 4f           sbci    r21, 0xFF       ; 255
+ 2d0:  49 32           cpi     r20, 0x29       ; 41
+ 2d2:  51 05           cpc     r21, r1
+ 2d4:  11 f0           breq    .+4             ; 0x2da <bleepBleepSound+0x68>
+ 2d6:  60 e0           ldi     r22, 0x00       ; 0
+ 2d8:  d4 cf           rjmp    .-88            ; 0x282 <bleepBleepSound+0x10>
+ 2da:  0f 90           pop     r0
+ 2dc:  0f 90           pop     r0
+ 2de:  cf 91           pop     r28
+ 2e0:  df 91           pop     r29
+ 2e2:  08 95           ret
+
+000002e4 <putByte>:
+ 2e4:  68 2f           mov     r22, r24
+ 2e6:  27 e0           ldi     r18, 0x07       ; 7
+ 2e8:  30 e0           ldi     r19, 0x00       ; 0
+ 2ea:  41 e0           ldi     r20, 0x01       ; 1
+ 2ec:  50 e0           ldi     r21, 0x00       ; 0
+ 2ee:  2c 98           cbi     0x05, 4 ; 5
+ 2f0:  ca 01           movw    r24, r20
+ 2f2:  02 2e           mov     r0, r18
+ 2f4:  02 c0           rjmp    .+4             ; 0x2fa <putByte+0x16>
+ 2f6:  88 0f           add     r24, r24
+ 2f8:  99 1f           adc     r25, r25
+ 2fa:  0a 94           dec     r0
+ 2fc:  e2 f7           brpl    .-8             ; 0x2f6 <putByte+0x12>
+ 2fe:  86 23           and     r24, r22
+ 300:  11 f0           breq    .+4             ; 0x306 <putByte+0x22>
+ 302:  2b 9a           sbi     0x05, 3 ; 5
+ 304:  01 c0           rjmp    .+2             ; 0x308 <putByte+0x24>
+ 306:  2b 98           cbi     0x05, 3 ; 5
+ 308:  2c 9a           sbi     0x05, 4 ; 5
+ 30a:  21 50           subi    r18, 0x01       ; 1
+ 30c:  30 40           sbci    r19, 0x00       ; 0
+ 30e:  8f ef           ldi     r24, 0xFF       ; 255
+ 310:  2f 3f           cpi     r18, 0xFF       ; 255
+ 312:  38 07           cpc     r19, r24
+ 314:  61 f7           brne    .-40            ; 0x2ee <putByte+0xa>
+ 316:  08 95           ret
+
+00000318 <maxOne>:
+ 318:  0f 93           push    r16
+ 31a:  1f 93           push    r17
+ 31c:  cf 93           push    r28
+ 31e:  df 93           push    r29
+ 320:  16 2f           mov     r17, r22
+ 322:  04 2f           mov     r16, r20
+ 324:  2d 98           cbi     0x05, 5 ; 5
+ 326:  21 e0           ldi     r18, 0x01       ; 1
+ 328:  30 e0           ldi     r19, 0x00       ; 0
+ 32a:  c8 2f           mov     r28, r24
+ 32c:  d0 e0           ldi     r29, 0x00       ; 0
+ 32e:  08 c0           rjmp    .+16            ; 0x340 <maxOne+0x28>
+ 330:  80 e0           ldi     r24, 0x00       ; 0
+ 332:  0e 94 72 01     call    0x2e4   ; 0x2e4 <putByte>
+ 336:  80 e0           ldi     r24, 0x00       ; 0
+ 338:  0e 94 72 01     call    0x2e4   ; 0x2e4 <putByte>
+ 33c:  20 e0           ldi     r18, 0x00       ; 0
+ 33e:  30 e0           ldi     r19, 0x00       ; 0
+ 340:  c2 17           cp      r28, r18
+ 342:  d3 07           cpc     r29, r19
+ 344:  ac f3           brlt    .-22            ; 0x330 <maxOne+0x18>
+ 346:  81 2f           mov     r24, r17
+ 348:  0e 94 72 01     call    0x2e4   ; 0x2e4 <putByte>
+ 34c:  80 2f           mov     r24, r16
+ 34e:  04 c0           rjmp    .+8             ; 0x358 <maxOne+0x40>
+ 350:  80 e0           ldi     r24, 0x00       ; 0
+ 352:  0e 94 72 01     call    0x2e4   ; 0x2e4 <putByte>
+ 356:  80 e0           ldi     r24, 0x00       ; 0
+ 358:  0e 94 72 01     call    0x2e4   ; 0x2e4 <putByte>
+ 35c:  21 97           sbiw    r28, 0x01       ; 1
+ 35e:  1c 16           cp      r1, r28
+ 360:  1d 06           cpc     r1, r29
+ 362:  b4 f3           brlt    .-20            ; 0x350 <maxOne+0x38>
+ 364:  2d 98           cbi     0x05, 5 ; 5
+ 366:  2d 9a           sbi     0x05, 5 ; 5
+ 368:  df 91           pop     r29
+ 36a:  cf 91           pop     r28
+ 36c:  1f 91           pop     r17
+ 36e:  0f 91           pop     r16
+ 370:  08 95           ret
+
+00000372 <moveLine>:
+ 372:  48 2f           mov     r20, r24
+ 374:  50 e0           ldi     r21, 0x00       ; 0
+ 376:  26 2f           mov     r18, r22
+ 378:  30 e0           ldi     r19, 0x00       ; 0
+ 37a:  65 30           cpi     r22, 0x05       ; 5
+ 37c:  58 f4           brcc    .+22            ; 0x394 <moveLine+0x22>
+ 37e:  84 e0           ldi     r24, 0x04       ; 4
+ 380:  90 e0           ldi     r25, 0x00       ; 0
+ 382:  82 1b           sub     r24, r18
+ 384:  93 0b           sbc     r25, r19
+ 386:  02 c0           rjmp    .+4             ; 0x38c <moveLine+0x1a>
+ 388:  44 0f           add     r20, r20
+ 38a:  55 1f           adc     r21, r21
+ 38c:  8a 95           dec     r24
+ 38e:  e2 f7           brpl    .-8             ; 0x388 <moveLine+0x16>
+ 390:  84 2f           mov     r24, r20
+ 392:  08 95           ret
+ 394:  24 50           subi    r18, 0x04       ; 4
+ 396:  30 40           sbci    r19, 0x00       ; 0
+ 398:  02 c0           rjmp    .+4             ; 0x39e <moveLine+0x2c>
+ 39a:  55 95           asr     r21
+ 39c:  47 95           ror     r20
+ 39e:  2a 95           dec     r18
+ 3a0:  e2 f7           brpl    .-8             ; 0x39a <moveLine+0x28>
+ 3a2:  84 2f           mov     r24, r20
+ 3a4:  08 95           ret
+
+000003a6 <redrawScreen>:
+ 3a6:  0f 93           push    r16
+ 3a8:  1f 93           push    r17
+ 3aa:  cf 93           push    r28
+ 3ac:  df 93           push    r29
+ 3ae:  c0 e0           ldi     r28, 0x00       ; 0
+ 3b0:  d0 e0           ldi     r29, 0x00       ; 0
+ 3b2:  04 e0           ldi     r16, 0x04       ; 4
+ 3b4:  10 e0           ldi     r17, 0x00       ; 0
+ 3b6:  80 91 8c 01     lds     r24, 0x018C
+ 3ba:  28 2f           mov     r18, r24
+ 3bc:  30 e0           ldi     r19, 0x00       ; 0
+ 3be:  c2 17           cp      r28, r18
+ 3c0:  d3 07           cpc     r29, r19
+ 3c2:  ec f0           brlt    .+58            ; 0x3fe <redrawScreen+0x58>
+ 3c4:  c9 01           movw    r24, r18
+ 3c6:  03 96           adiw    r24, 0x03       ; 3
+ 3c8:  8c 17           cp      r24, r28
+ 3ca:  9d 07           cpc     r25, r29
+ 3cc:  c4 f0           brlt    .+48            ; 0x3fe <redrawScreen+0x58>
+ 3ce:  ce 01           movw    r24, r28
+ 3d0:  82 1b           sub     r24, r18
+ 3d2:  93 0b           sbc     r25, r19
+ 3d4:  e0 91 84 01     lds     r30, 0x0184
+ 3d8:  f0 e0           ldi     r31, 0x00       ; 0
+ 3da:  20 91 8b 01     lds     r18, 0x018B
+ 3de:  ee 0f           add     r30, r30
+ 3e0:  ff 1f           adc     r31, r31
+ 3e2:  ee 0f           add     r30, r30
+ 3e4:  ff 1f           adc     r31, r31
+ 3e6:  e2 0f           add     r30, r18
+ 3e8:  f1 1d           adc     r31, r1
+ 3ea:  ee 0f           add     r30, r30
+ 3ec:  ff 1f           adc     r31, r31
+ 3ee:  ee 0f           add     r30, r30
+ 3f0:  ff 1f           adc     r31, r31
+ 3f2:  e8 0f           add     r30, r24
+ 3f4:  f9 1f           adc     r31, r25
+ 3f6:  ec 5c           subi    r30, 0xCC       ; 204
+ 3f8:  fe 4f           sbci    r31, 0xFE       ; 254
+ 3fa:  e0 81           ld      r30, Z
+ 3fc:  01 c0           rjmp    .+2             ; 0x400 <redrawScreen+0x5a>
+ 3fe:  e0 e0           ldi     r30, 0x00       ; 0
+ 400:  80 91 85 01     lds     r24, 0x0185
+ 404:  4e 2f           mov     r20, r30
+ 406:  50 e0           ldi     r21, 0x00       ; 0
+ 408:  28 2f           mov     r18, r24
+ 40a:  30 e0           ldi     r19, 0x00       ; 0
+ 40c:  85 30           cpi     r24, 0x05       ; 5
+ 40e:  48 f4           brcc    .+18            ; 0x422 <redrawScreen+0x7c>
+ 410:  c8 01           movw    r24, r16
+ 412:  82 1b           sub     r24, r18
+ 414:  93 0b           sbc     r25, r19
+ 416:  02 c0           rjmp    .+4             ; 0x41c <redrawScreen+0x76>
+ 418:  44 0f           add     r20, r20
+ 41a:  55 1f           adc     r21, r21
+ 41c:  8a 95           dec     r24
+ 41e:  e2 f7           brpl    .-8             ; 0x418 <redrawScreen+0x72>
+ 420:  07 c0           rjmp    .+14            ; 0x430 <redrawScreen+0x8a>
+ 422:  24 50           subi    r18, 0x04       ; 4
+ 424:  30 40           sbci    r19, 0x00       ; 0
+ 426:  02 c0           rjmp    .+4             ; 0x42c <redrawScreen+0x86>
+ 428:  55 95           asr     r21
+ 42a:  47 95           ror     r20
+ 42c:  2a 95           dec     r18
+ 42e:  e2 f7           brpl    .-8             ; 0x428 <redrawScreen+0x82>
+ 430:  ce 01           movw    r24, r28
+ 432:  8f 5f           subi    r24, 0xFF       ; 255
+ 434:  68 2f           mov     r22, r24
+ 436:  fe 01           movw    r30, r28
+ 438:  ee 56           subi    r30, 0x6E       ; 110
+ 43a:  fe 4f           sbci    r31, 0xFE       ; 254
+ 43c:  80 81           ld      r24, Z
+ 43e:  48 2b           or      r20, r24
+ 440:  81 e0           ldi     r24, 0x01       ; 1
+ 442:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ 446:  21 96           adiw    r28, 0x01       ; 1
+ 448:  c8 30           cpi     r28, 0x08       ; 8
+ 44a:  d1 05           cpc     r29, r1
+ 44c:  09 f0           breq    .+2             ; 0x450 <redrawScreen+0xaa>
+ 44e:  b3 cf           rjmp    .-154           ; 0x3b6 <redrawScreen+0x10>
+ 450:  df 91           pop     r29
+ 452:  cf 91           pop     r28
+ 454:  1f 91           pop     r17
+ 456:  0f 91           pop     r16
+ 458:  08 95           ret
+
+0000045a <checkDown>:
+ 45a:  1f 93           push    r17
+ 45c:  cf 93           push    r28
+ 45e:  df 93           push    r29
+ 460:  10 91 85 01     lds     r17, 0x0185
+ 464:  81 2f           mov     r24, r17
+ 466:  90 e0           ldi     r25, 0x00       ; 0
+ 468:  44 e0           ldi     r20, 0x04       ; 4
+ 46a:  50 e0           ldi     r21, 0x00       ; 0
+ 46c:  48 1b           sub     r20, r24
+ 46e:  59 0b           sbc     r21, r25
+ 470:  ec 01           movw    r28, r24
+ 472:  24 97           sbiw    r28, 0x04       ; 4
+ 474:  80 91 8c 01     lds     r24, 0x018C
+ 478:  30 91 8b 01     lds     r19, 0x018B
+ 47c:  20 91 84 01     lds     r18, 0x0184
+ 480:  e2 2f           mov     r30, r18
+ 482:  f0 e0           ldi     r31, 0x00       ; 0
+ 484:  ee 0f           add     r30, r30
+ 486:  ff 1f           adc     r31, r31
+ 488:  ee 0f           add     r30, r30
+ 48a:  ff 1f           adc     r31, r31
+ 48c:  e3 0f           add     r30, r19
+ 48e:  f1 1d           adc     r31, r1
+ 490:  ee 0f           add     r30, r30
+ 492:  ff 1f           adc     r31, r31
+ 494:  ee 0f           add     r30, r30
+ 496:  ff 1f           adc     r31, r31
+ 498:  ec 5c           subi    r30, 0xCC       ; 204
+ 49a:  fe 4f           sbci    r31, 0xFE       ; 254
+ 49c:  90 e0           ldi     r25, 0x00       ; 0
+ 49e:  dc 01           movw    r26, r24
+ 4a0:  ad 56           subi    r26, 0x6D       ; 109
+ 4a2:  be 4f           sbci    r27, 0xFE       ; 254
+ 4a4:  bc 01           movw    r22, r24
+ 4a6:  69 56           subi    r22, 0x69       ; 105
+ 4a8:  7e 4f           sbci    r23, 0xFE       ; 254
+ 4aa:  80 81           ld      r24, Z
+ 4ac:  28 2f           mov     r18, r24
+ 4ae:  30 e0           ldi     r19, 0x00       ; 0
+ 4b0:  15 30           cpi     r17, 0x05       ; 5
+ 4b2:  38 f4           brcc    .+14            ; 0x4c2 <checkDown+0x68>
+ 4b4:  04 2e           mov     r0, r20
+ 4b6:  02 c0           rjmp    .+4             ; 0x4bc <checkDown+0x62>
+ 4b8:  22 0f           add     r18, r18
+ 4ba:  33 1f           adc     r19, r19
+ 4bc:  0a 94           dec     r0
+ 4be:  e2 f7           brpl    .-8             ; 0x4b8 <checkDown+0x5e>
+ 4c0:  06 c0           rjmp    .+12            ; 0x4ce <checkDown+0x74>
+ 4c2:  0c 2e           mov     r0, r28
+ 4c4:  02 c0           rjmp    .+4             ; 0x4ca <checkDown+0x70>
+ 4c6:  35 95           asr     r19
+ 4c8:  27 95           ror     r18
+ 4ca:  0a 94           dec     r0
+ 4cc:  e2 f7           brpl    .-8             ; 0x4c6 <checkDown+0x6c>
+ 4ce:  8c 91           ld      r24, X
+ 4d0:  28 23           and     r18, r24
+ 4d2:  11 f0           breq    .+4             ; 0x4d8 <checkDown+0x7e>
+ 4d4:  81 e0           ldi     r24, 0x01       ; 1
+ 4d6:  06 c0           rjmp    .+12            ; 0x4e4 <checkDown+0x8a>
+ 4d8:  31 96           adiw    r30, 0x01       ; 1
+ 4da:  11 96           adiw    r26, 0x01       ; 1
+ 4dc:  a6 17           cp      r26, r22
+ 4de:  b7 07           cpc     r27, r23
+ 4e0:  21 f7           brne    .-56            ; 0x4aa <checkDown+0x50>
+ 4e2:  80 e0           ldi     r24, 0x00       ; 0
+ 4e4:  df 91           pop     r29
+ 4e6:  cf 91           pop     r28
+ 4e8:  1f 91           pop     r17
+ 4ea:  08 95           ret
+
+000004ec <checkStart>:
+ 4ec:  1f 93           push    r17
+ 4ee:  cf 93           push    r28
+ 4f0:  df 93           push    r29
+ 4f2:  10 91 85 01     lds     r17, 0x0185
+ 4f6:  81 2f           mov     r24, r17
+ 4f8:  90 e0           ldi     r25, 0x00       ; 0
+ 4fa:  44 e0           ldi     r20, 0x04       ; 4
+ 4fc:  50 e0           ldi     r21, 0x00       ; 0
+ 4fe:  48 1b           sub     r20, r24
+ 500:  59 0b           sbc     r21, r25
+ 502:  ec 01           movw    r28, r24
+ 504:  24 97           sbiw    r28, 0x04       ; 4
+ 506:  80 91 8c 01     lds     r24, 0x018C
+ 50a:  30 91 8b 01     lds     r19, 0x018B
+ 50e:  20 91 84 01     lds     r18, 0x0184
+ 512:  e2 2f           mov     r30, r18
+ 514:  f0 e0           ldi     r31, 0x00       ; 0
+ 516:  ee 0f           add     r30, r30
+ 518:  ff 1f           adc     r31, r31
+ 51a:  ee 0f           add     r30, r30
+ 51c:  ff 1f           adc     r31, r31
+ 51e:  e3 0f           add     r30, r19
+ 520:  f1 1d           adc     r31, r1
+ 522:  ee 0f           add     r30, r30
+ 524:  ff 1f           adc     r31, r31
+ 526:  ee 0f           add     r30, r30
+ 528:  ff 1f           adc     r31, r31
+ 52a:  ec 5c           subi    r30, 0xCC       ; 204
+ 52c:  fe 4f           sbci    r31, 0xFE       ; 254
+ 52e:  90 e0           ldi     r25, 0x00       ; 0
+ 530:  dc 01           movw    r26, r24
+ 532:  ae 56           subi    r26, 0x6E       ; 110
+ 534:  be 4f           sbci    r27, 0xFE       ; 254
+ 536:  bc 01           movw    r22, r24
+ 538:  6a 56           subi    r22, 0x6A       ; 106
+ 53a:  7e 4f           sbci    r23, 0xFE       ; 254
+ 53c:  80 81           ld      r24, Z
+ 53e:  28 2f           mov     r18, r24
+ 540:  30 e0           ldi     r19, 0x00       ; 0
+ 542:  15 30           cpi     r17, 0x05       ; 5
+ 544:  38 f4           brcc    .+14            ; 0x554 <__stack+0x55>
+ 546:  04 2e           mov     r0, r20
+ 548:  02 c0           rjmp    .+4             ; 0x54e <__stack+0x4f>
+ 54a:  22 0f           add     r18, r18
+ 54c:  33 1f           adc     r19, r19
+ 54e:  0a 94           dec     r0
+ 550:  e2 f7           brpl    .-8             ; 0x54a <__stack+0x4b>
+ 552:  06 c0           rjmp    .+12            ; 0x560 <__stack+0x61>
+ 554:  0c 2e           mov     r0, r28
+ 556:  02 c0           rjmp    .+4             ; 0x55c <__stack+0x5d>
+ 558:  35 95           asr     r19
+ 55a:  27 95           ror     r18
+ 55c:  0a 94           dec     r0
+ 55e:  e2 f7           brpl    .-8             ; 0x558 <__stack+0x59>
+ 560:  8c 91           ld      r24, X
+ 562:  28 23           and     r18, r24
+ 564:  11 f0           breq    .+4             ; 0x56a <__stack+0x6b>
+ 566:  81 e0           ldi     r24, 0x01       ; 1
+ 568:  06 c0           rjmp    .+12            ; 0x576 <__stack+0x77>
+ 56a:  31 96           adiw    r30, 0x01       ; 1
+ 56c:  11 96           adiw    r26, 0x01       ; 1
+ 56e:  a6 17           cp      r26, r22
+ 570:  b7 07           cpc     r27, r23
+ 572:  21 f7           brne    .-56            ; 0x53c <__stack+0x3d>
+ 574:  80 e0           ldi     r24, 0x00       ; 0
+ 576:  df 91           pop     r29
+ 578:  cf 91           pop     r28
+ 57a:  1f 91           pop     r17
+ 57c:  08 95           ret
+
+0000057e <checkLeft>:
+ 57e:  bf 92           push    r11
+ 580:  cf 92           push    r12
+ 582:  df 92           push    r13
+ 584:  ef 92           push    r14
+ 586:  ff 92           push    r15
+ 588:  0f 93           push    r16
+ 58a:  1f 93           push    r17
+ 58c:  cf 93           push    r28
+ 58e:  df 93           push    r29
+ 590:  50 91 85 01     lds     r21, 0x0185
+ 594:  85 2f           mov     r24, r21
+ 596:  90 e0           ldi     r25, 0x00       ; 0
+ 598:  24 e0           ldi     r18, 0x04       ; 4
+ 59a:  30 e0           ldi     r19, 0x00       ; 0
+ 59c:  69 01           movw    r12, r18
+ 59e:  c8 1a           sub     r12, r24
+ 5a0:  d9 0a           sbc     r13, r25
+ 5a2:  0c ef           ldi     r16, 0xFC       ; 252
+ 5a4:  e0 2e           mov     r14, r16
+ 5a6:  0f ef           ldi     r16, 0xFF       ; 255
+ 5a8:  f0 2e           mov     r15, r16
+ 5aa:  e8 0e           add     r14, r24
+ 5ac:  f9 1e           adc     r15, r25
+ 5ae:  b5 2e           mov     r11, r21
+ 5b0:  ba 94           dec     r11
+ 5b2:  8b 2d           mov     r24, r11
+ 5b4:  90 e0           ldi     r25, 0x00       ; 0
+ 5b6:  89 01           movw    r16, r18
+ 5b8:  08 1b           sub     r16, r24
+ 5ba:  19 0b           sbc     r17, r25
+ 5bc:  ec 01           movw    r28, r24
+ 5be:  24 97           sbiw    r28, 0x04       ; 4
+ 5c0:  80 91 8c 01     lds     r24, 0x018C
+ 5c4:  30 91 8b 01     lds     r19, 0x018B
+ 5c8:  20 91 84 01     lds     r18, 0x0184
+ 5cc:  e2 2f           mov     r30, r18
+ 5ce:  f0 e0           ldi     r31, 0x00       ; 0
+ 5d0:  ee 0f           add     r30, r30
+ 5d2:  ff 1f           adc     r31, r31
+ 5d4:  ee 0f           add     r30, r30
+ 5d6:  ff 1f           adc     r31, r31
+ 5d8:  e3 0f           add     r30, r19
+ 5da:  f1 1d           adc     r31, r1
+ 5dc:  ee 0f           add     r30, r30
+ 5de:  ff 1f           adc     r31, r31
+ 5e0:  ee 0f           add     r30, r30
+ 5e2:  ff 1f           adc     r31, r31
+ 5e4:  ec 5c           subi    r30, 0xCC       ; 204
+ 5e6:  fe 4f           sbci    r31, 0xFE       ; 254
+ 5e8:  90 e0           ldi     r25, 0x00       ; 0
+ 5ea:  dc 01           movw    r26, r24
+ 5ec:  ae 56           subi    r26, 0x6E       ; 110
+ 5ee:  be 4f           sbci    r27, 0xFE       ; 254
+ 5f0:  bc 01           movw    r22, r24
+ 5f2:  6a 56           subi    r22, 0x6A       ; 106
+ 5f4:  7e 4f           sbci    r23, 0xFE       ; 254
+ 5f6:  40 81           ld      r20, Z
+ 5f8:  24 2f           mov     r18, r20
+ 5fa:  30 e0           ldi     r19, 0x00       ; 0
+ 5fc:  55 30           cpi     r21, 0x05       ; 5
+ 5fe:  38 f4           brcc    .+14            ; 0x60e <checkLeft+0x90>
+ 600:  0c 2c           mov     r0, r12
+ 602:  02 c0           rjmp    .+4             ; 0x608 <checkLeft+0x8a>
+ 604:  22 0f           add     r18, r18
+ 606:  33 1f           adc     r19, r19
+ 608:  0a 94           dec     r0
+ 60a:  e2 f7           brpl    .-8             ; 0x604 <checkLeft+0x86>
+ 60c:  06 c0           rjmp    .+12            ; 0x61a <checkLeft+0x9c>
+ 60e:  0e 2c           mov     r0, r14
+ 610:  02 c0           rjmp    .+4             ; 0x616 <checkLeft+0x98>
+ 612:  35 95           asr     r19
+ 614:  27 95           ror     r18
+ 616:  0a 94           dec     r0
+ 618:  e2 f7           brpl    .-8             ; 0x612 <checkLeft+0x94>
+ 61a:  27 fd           sbrc    r18, 7
+ 61c:  1c c0           rjmp    .+56            ; 0x656 <checkLeft+0xd8>
+ 61e:  24 2f           mov     r18, r20
+ 620:  30 e0           ldi     r19, 0x00       ; 0
+ 622:  84 e0           ldi     r24, 0x04       ; 4
+ 624:  8b 15           cp      r24, r11
+ 626:  38 f0           brcs    .+14            ; 0x636 <checkLeft+0xb8>
+ 628:  00 2e           mov     r0, r16
+ 62a:  02 c0           rjmp    .+4             ; 0x630 <checkLeft+0xb2>
+ 62c:  22 0f           add     r18, r18
+ 62e:  33 1f           adc     r19, r19
+ 630:  0a 94           dec     r0
+ 632:  e2 f7           brpl    .-8             ; 0x62c <checkLeft+0xae>
+ 634:  06 c0           rjmp    .+12            ; 0x642 <checkLeft+0xc4>
+ 636:  0c 2e           mov     r0, r28
+ 638:  02 c0           rjmp    .+4             ; 0x63e <checkLeft+0xc0>
+ 63a:  35 95           asr     r19
+ 63c:  27 95           ror     r18
+ 63e:  0a 94           dec     r0
+ 640:  e2 f7           brpl    .-8             ; 0x63a <checkLeft+0xbc>
+ 642:  8c 91           ld      r24, X
+ 644:  28 23           and     r18, r24
+ 646:  39 f4           brne    .+14            ; 0x656 <checkLeft+0xd8>
+ 648:  31 96           adiw    r30, 0x01       ; 1
+ 64a:  11 96           adiw    r26, 0x01       ; 1
+ 64c:  a6 17           cp      r26, r22
+ 64e:  b7 07           cpc     r27, r23
+ 650:  91 f6           brne    .-92            ; 0x5f6 <checkLeft+0x78>
+ 652:  80 e0           ldi     r24, 0x00       ; 0
+ 654:  01 c0           rjmp    .+2             ; 0x658 <checkLeft+0xda>
+ 656:  81 e0           ldi     r24, 0x01       ; 1
+ 658:  df 91           pop     r29
+ 65a:  cf 91           pop     r28
+ 65c:  1f 91           pop     r17
+ 65e:  0f 91           pop     r16
+ 660:  ff 90           pop     r15
+ 662:  ef 90           pop     r14
+ 664:  df 90           pop     r13
+ 666:  cf 90           pop     r12
+ 668:  bf 90           pop     r11
+ 66a:  08 95           ret
+
+0000066c <checkRight>:
+ 66c:  bf 92           push    r11
+ 66e:  cf 92           push    r12
+ 670:  df 92           push    r13
+ 672:  ef 92           push    r14
+ 674:  ff 92           push    r15
+ 676:  0f 93           push    r16
+ 678:  1f 93           push    r17
+ 67a:  cf 93           push    r28
+ 67c:  df 93           push    r29
+ 67e:  50 91 85 01     lds     r21, 0x0185
+ 682:  85 2f           mov     r24, r21
+ 684:  90 e0           ldi     r25, 0x00       ; 0
+ 686:  24 e0           ldi     r18, 0x04       ; 4
+ 688:  30 e0           ldi     r19, 0x00       ; 0
+ 68a:  69 01           movw    r12, r18
+ 68c:  c8 1a           sub     r12, r24
+ 68e:  d9 0a           sbc     r13, r25
+ 690:  4c ef           ldi     r20, 0xFC       ; 252
+ 692:  e4 2e           mov     r14, r20
+ 694:  4f ef           ldi     r20, 0xFF       ; 255
+ 696:  f4 2e           mov     r15, r20
+ 698:  e8 0e           add     r14, r24
+ 69a:  f9 1e           adc     r15, r25
+ 69c:  b5 2e           mov     r11, r21
+ 69e:  b3 94           inc     r11
+ 6a0:  8b 2d           mov     r24, r11
+ 6a2:  90 e0           ldi     r25, 0x00       ; 0
+ 6a4:  89 01           movw    r16, r18
+ 6a6:  08 1b           sub     r16, r24
+ 6a8:  19 0b           sbc     r17, r25
+ 6aa:  ec 01           movw    r28, r24
+ 6ac:  24 97           sbiw    r28, 0x04       ; 4
+ 6ae:  80 91 8c 01     lds     r24, 0x018C
+ 6b2:  30 91 8b 01     lds     r19, 0x018B
+ 6b6:  20 91 84 01     lds     r18, 0x0184
+ 6ba:  e2 2f           mov     r30, r18
+ 6bc:  f0 e0           ldi     r31, 0x00       ; 0
+ 6be:  ee 0f           add     r30, r30
+ 6c0:  ff 1f           adc     r31, r31
+ 6c2:  ee 0f           add     r30, r30
+ 6c4:  ff 1f           adc     r31, r31
+ 6c6:  e3 0f           add     r30, r19
+ 6c8:  f1 1d           adc     r31, r1
+ 6ca:  ee 0f           add     r30, r30
+ 6cc:  ff 1f           adc     r31, r31
+ 6ce:  ee 0f           add     r30, r30
+ 6d0:  ff 1f           adc     r31, r31
+ 6d2:  ec 5c           subi    r30, 0xCC       ; 204
+ 6d4:  fe 4f           sbci    r31, 0xFE       ; 254
+ 6d6:  90 e0           ldi     r25, 0x00       ; 0
+ 6d8:  dc 01           movw    r26, r24
+ 6da:  ae 56           subi    r26, 0x6E       ; 110
+ 6dc:  be 4f           sbci    r27, 0xFE       ; 254
+ 6de:  bc 01           movw    r22, r24
+ 6e0:  6a 56           subi    r22, 0x6A       ; 106
+ 6e2:  7e 4f           sbci    r23, 0xFE       ; 254
+ 6e4:  40 81           ld      r20, Z
+ 6e6:  24 2f           mov     r18, r20
+ 6e8:  30 e0           ldi     r19, 0x00       ; 0
+ 6ea:  55 30           cpi     r21, 0x05       ; 5
+ 6ec:  38 f4           brcc    .+14            ; 0x6fc <checkRight+0x90>
+ 6ee:  0c 2c           mov     r0, r12
+ 6f0:  02 c0           rjmp    .+4             ; 0x6f6 <checkRight+0x8a>
+ 6f2:  22 0f           add     r18, r18
+ 6f4:  33 1f           adc     r19, r19
+ 6f6:  0a 94           dec     r0
+ 6f8:  e2 f7           brpl    .-8             ; 0x6f2 <checkRight+0x86>
+ 6fa:  06 c0           rjmp    .+12            ; 0x708 <checkRight+0x9c>
+ 6fc:  0e 2c           mov     r0, r14
+ 6fe:  02 c0           rjmp    .+4             ; 0x704 <checkRight+0x98>
+ 700:  35 95           asr     r19
+ 702:  27 95           ror     r18
+ 704:  0a 94           dec     r0
+ 706:  e2 f7           brpl    .-8             ; 0x700 <checkRight+0x94>
+ 708:  20 fd           sbrc    r18, 0
+ 70a:  1c c0           rjmp    .+56            ; 0x744 <checkRight+0xd8>
+ 70c:  24 2f           mov     r18, r20
+ 70e:  30 e0           ldi     r19, 0x00       ; 0
+ 710:  84 e0           ldi     r24, 0x04       ; 4
+ 712:  8b 15           cp      r24, r11
+ 714:  38 f0           brcs    .+14            ; 0x724 <checkRight+0xb8>
+ 716:  00 2e           mov     r0, r16
+ 718:  02 c0           rjmp    .+4             ; 0x71e <checkRight+0xb2>
+ 71a:  22 0f           add     r18, r18
+ 71c:  33 1f           adc     r19, r19
+ 71e:  0a 94           dec     r0
+ 720:  e2 f7           brpl    .-8             ; 0x71a <checkRight+0xae>
+ 722:  06 c0           rjmp    .+12            ; 0x730 <checkRight+0xc4>
+ 724:  0c 2e           mov     r0, r28
+ 726:  02 c0           rjmp    .+4             ; 0x72c <checkRight+0xc0>
+ 728:  35 95           asr     r19
+ 72a:  27 95           ror     r18
+ 72c:  0a 94           dec     r0
+ 72e:  e2 f7           brpl    .-8             ; 0x728 <checkRight+0xbc>
+ 730:  8c 91           ld      r24, X
+ 732:  28 23           and     r18, r24
+ 734:  39 f4           brne    .+14            ; 0x744 <checkRight+0xd8>
+ 736:  31 96           adiw    r30, 0x01       ; 1
+ 738:  11 96           adiw    r26, 0x01       ; 1
+ 73a:  a6 17           cp      r26, r22
+ 73c:  b7 07           cpc     r27, r23
+ 73e:  91 f6           brne    .-92            ; 0x6e4 <checkRight+0x78>
+ 740:  80 e0           ldi     r24, 0x00       ; 0
+ 742:  01 c0           rjmp    .+2             ; 0x746 <checkRight+0xda>
+ 744:  81 e0           ldi     r24, 0x01       ; 1
+ 746:  df 91           pop     r29
+ 748:  cf 91           pop     r28
+ 74a:  1f 91           pop     r17
+ 74c:  0f 91           pop     r16
+ 74e:  ff 90           pop     r15
+ 750:  ef 90           pop     r14
+ 752:  df 90           pop     r13
+ 754:  cf 90           pop     r12
+ 756:  bf 90           pop     r11
+ 758:  08 95           ret
+
+0000075a <checkTurn>:
+ 75a:  0f 93           push    r16
+ 75c:  1f 93           push    r17
+ 75e:  cf 93           push    r28
+ 760:  df 93           push    r29
+ 762:  80 91 8b 01     lds     r24, 0x018B
+ 766:  83 30           cpi     r24, 0x03       ; 3
+ 768:  10 f0           brcs    .+4             ; 0x76e <checkTurn+0x14>
+ 76a:  20 e0           ldi     r18, 0x00       ; 0
+ 76c:  02 c0           rjmp    .+4             ; 0x772 <checkTurn+0x18>
+ 76e:  28 2f           mov     r18, r24
+ 770:  2f 5f           subi    r18, 0xFF       ; 255
+ 772:  50 91 84 01     lds     r21, 0x0184
+ 776:  40 91 85 01     lds     r20, 0x0185
+ 77a:  84 2f           mov     r24, r20
+ 77c:  90 e0           ldi     r25, 0x00       ; 0
+ 77e:  64 e0           ldi     r22, 0x04       ; 4
+ 780:  70 e0           ldi     r23, 0x00       ; 0
+ 782:  68 1b           sub     r22, r24
+ 784:  79 0b           sbc     r23, r25
+ 786:  8c 01           movw    r16, r24
+ 788:  04 50           subi    r16, 0x04       ; 4
+ 78a:  10 40           sbci    r17, 0x00       ; 0
+ 78c:  80 91 8c 01     lds     r24, 0x018C
+ 790:  e5 2f           mov     r30, r21
+ 792:  f0 e0           ldi     r31, 0x00       ; 0
+ 794:  ee 0f           add     r30, r30
+ 796:  ff 1f           adc     r31, r31
+ 798:  ee 0f           add     r30, r30
+ 79a:  ff 1f           adc     r31, r31
+ 79c:  e2 0f           add     r30, r18
+ 79e:  f1 1d           adc     r31, r1
+ 7a0:  ee 0f           add     r30, r30
+ 7a2:  ff 1f           adc     r31, r31
+ 7a4:  ee 0f           add     r30, r30
+ 7a6:  ff 1f           adc     r31, r31
+ 7a8:  ec 5c           subi    r30, 0xCC       ; 204
+ 7aa:  fe 4f           sbci    r31, 0xFE       ; 254
+ 7ac:  90 e0           ldi     r25, 0x00       ; 0
+ 7ae:  dc 01           movw    r26, r24
+ 7b0:  ae 56           subi    r26, 0x6E       ; 110
+ 7b2:  be 4f           sbci    r27, 0xFE       ; 254
+ 7b4:  ec 01           movw    r28, r24
+ 7b6:  ca 56           subi    r28, 0x6A       ; 106
+ 7b8:  de 4f           sbci    r29, 0xFE       ; 254
+ 7ba:  80 81           ld      r24, Z
+ 7bc:  28 2f           mov     r18, r24
+ 7be:  30 e0           ldi     r19, 0x00       ; 0
+ 7c0:  45 30           cpi     r20, 0x05       ; 5
+ 7c2:  38 f4           brcc    .+14            ; 0x7d2 <checkTurn+0x78>
+ 7c4:  06 2e           mov     r0, r22
+ 7c6:  02 c0           rjmp    .+4             ; 0x7cc <checkTurn+0x72>
+ 7c8:  22 0f           add     r18, r18
+ 7ca:  33 1f           adc     r19, r19
+ 7cc:  0a 94           dec     r0
+ 7ce:  e2 f7           brpl    .-8             ; 0x7c8 <checkTurn+0x6e>
+ 7d0:  06 c0           rjmp    .+12            ; 0x7de <checkTurn+0x84>
+ 7d2:  00 2e           mov     r0, r16
+ 7d4:  02 c0           rjmp    .+4             ; 0x7da <checkTurn+0x80>
+ 7d6:  35 95           asr     r19
+ 7d8:  27 95           ror     r18
+ 7da:  0a 94           dec     r0
+ 7dc:  e2 f7           brpl    .-8             ; 0x7d6 <checkTurn+0x7c>
+ 7de:  51 30           cpi     r21, 0x01       ; 1
+ 7e0:  31 f0           breq    .+12            ; 0x7ee <checkTurn+0x94>
+ 7e2:  52 30           cpi     r21, 0x02       ; 2
+ 7e4:  11 f0           breq    .+4             ; 0x7ea <checkTurn+0x90>
+ 7e6:  53 30           cpi     r21, 0x03       ; 3
+ 7e8:  29 f4           brne    .+10            ; 0x7f4 <checkTurn+0x9a>
+ 7ea:  41 30           cpi     r20, 0x01       ; 1
+ 7ec:  99 f0           breq    .+38            ; 0x814 <checkTurn+0xba>
+ 7ee:  48 30           cpi     r20, 0x08       ; 8
+ 7f0:  39 f4           brne    .+14            ; 0x800 <checkTurn+0xa6>
+ 7f2:  10 c0           rjmp    .+32            ; 0x814 <checkTurn+0xba>
+ 7f4:  54 30           cpi     r21, 0x04       ; 4
+ 7f6:  21 f4           brne    .+8             ; 0x800 <checkTurn+0xa6>
+ 7f8:  42 30           cpi     r20, 0x02       ; 2
+ 7fa:  61 f0           breq    .+24            ; 0x814 <checkTurn+0xba>
+ 7fc:  47 30           cpi     r20, 0x07       ; 7
+ 7fe:  51 f0           breq    .+20            ; 0x814 <checkTurn+0xba>
+ 800:  8c 91           ld      r24, X
+ 802:  28 23           and     r18, r24
+ 804:  39 f4           brne    .+14            ; 0x814 <checkTurn+0xba>
+ 806:  31 96           adiw    r30, 0x01       ; 1
+ 808:  11 96           adiw    r26, 0x01       ; 1
+ 80a:  ac 17           cp      r26, r28
+ 80c:  bd 07           cpc     r27, r29
+ 80e:  a9 f6           brne    .-86            ; 0x7ba <checkTurn+0x60>
+ 810:  80 e0           ldi     r24, 0x00       ; 0
+ 812:  01 c0           rjmp    .+2             ; 0x816 <checkTurn+0xbc>
+ 814:  81 e0           ldi     r24, 0x01       ; 1
+ 816:  df 91           pop     r29
+ 818:  cf 91           pop     r28
+ 81a:  1f 91           pop     r17
+ 81c:  0f 91           pop     r16
+ 81e:  08 95           ret
+
+00000820 <checkFullLine>:
+ 820:  cf 92           push    r12
+ 822:  df 92           push    r13
+ 824:  ef 92           push    r14
+ 826:  ff 92           push    r15
+ 828:  0f 93           push    r16
+ 82a:  1f 93           push    r17
+ 82c:  df 93           push    r29
+ 82e:  cf 93           push    r28
+ 830:  00 d0           rcall   .+0             ; 0x832 <checkFullLine+0x12>
+ 832:  cd b7           in      r28, 0x3d       ; 61
+ 834:  de b7           in      r29, 0x3e       ; 62
+ 836:  80 91 8c 01     lds     r24, 0x018C
+ 83a:  b7 e0           ldi     r27, 0x07       ; 7
+ 83c:  eb 2e           mov     r14, r27
+ 83e:  e8 22           and     r14, r24
+ 840:  e3 94           inc     r14
+ 842:  00 e0           ldi     r16, 0x00       ; 0
+ 844:  10 e0           ldi     r17, 0x00       ; 0
+ 846:  86 95           lsr     r24
+ 848:  86 95           lsr     r24
+ 84a:  86 95           lsr     r24
+ 84c:  c8 2e           mov     r12, r24
+ 84e:  c3 94           inc     r12
+ 850:  d0 2e           mov     r13, r16
+ 852:  80 91 8c 01     lds     r24, 0x018C
+ 856:  f8 01           movw    r30, r16
+ 858:  e8 0f           add     r30, r24
+ 85a:  f1 1d           adc     r31, r1
+ 85c:  e8 30           cpi     r30, 0x08       ; 8
+ 85e:  f1 05           cpc     r31, r1
+ 860:  0c f0           brlt    .+2             ; 0x864 <checkFullLine+0x44>
+ 862:  6b c0           rjmp    .+214           ; 0x93a <checkFullLine+0x11a>
+ 864:  ee 56           subi    r30, 0x6E       ; 110
+ 866:  fe 4f           sbci    r31, 0xFE       ; 254
+ 868:  80 81           ld      r24, Z
+ 86a:  8f 3f           cpi     r24, 0xFF       ; 255
+ 86c:  09 f0           breq    .+2             ; 0x870 <checkFullLine+0x50>
+ 86e:  65 c0           rjmp    .+202           ; 0x93a <checkFullLine+0x11a>
+ 870:  ff 24           eor     r15, r15
+ 872:  8c 2d           mov     r24, r12
+ 874:  6e 2d           mov     r22, r14
+ 876:  40 e0           ldi     r20, 0x00       ; 0
+ 878:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ 87c:  28 ee           ldi     r18, 0xE8       ; 232
+ 87e:  33 e0           ldi     r19, 0x03       ; 3
+ 880:  1a 82           std     Y+2, r1 ; 0x02
+ 882:  19 82           std     Y+1, r1 ; 0x01
+ 884:  05 c0           rjmp    .+10            ; 0x890 <checkFullLine+0x70>
+ 886:  89 81           ldd     r24, Y+1        ; 0x01
+ 888:  9a 81           ldd     r25, Y+2        ; 0x02
+ 88a:  01 96           adiw    r24, 0x01       ; 1
+ 88c:  9a 83           std     Y+2, r25        ; 0x02
+ 88e:  89 83           std     Y+1, r24        ; 0x01
+ 890:  89 81           ldd     r24, Y+1        ; 0x01
+ 892:  9a 81           ldd     r25, Y+2        ; 0x02
+ 894:  8b 35           cpi     r24, 0x5B       ; 91
+ 896:  91 05           cpc     r25, r1
+ 898:  b1 f7           brne    .-20            ; 0x886 <checkFullLine+0x66>
+ 89a:  21 50           subi    r18, 0x01       ; 1
+ 89c:  30 40           sbci    r19, 0x00       ; 0
+ 89e:  81 f7           brne    .-32            ; 0x880 <checkFullLine+0x60>
+ 8a0:  8c 2d           mov     r24, r12
+ 8a2:  6e 2d           mov     r22, r14
+ 8a4:  4f ef           ldi     r20, 0xFF       ; 255
+ 8a6:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ 8aa:  28 ee           ldi     r18, 0xE8       ; 232
+ 8ac:  33 e0           ldi     r19, 0x03       ; 3
+ 8ae:  1a 82           std     Y+2, r1 ; 0x02
+ 8b0:  19 82           std     Y+1, r1 ; 0x01
+ 8b2:  05 c0           rjmp    .+10            ; 0x8be <checkFullLine+0x9e>
+ 8b4:  89 81           ldd     r24, Y+1        ; 0x01
+ 8b6:  9a 81           ldd     r25, Y+2        ; 0x02
+ 8b8:  01 96           adiw    r24, 0x01       ; 1
+ 8ba:  9a 83           std     Y+2, r25        ; 0x02
+ 8bc:  89 83           std     Y+1, r24        ; 0x01
+ 8be:  89 81           ldd     r24, Y+1        ; 0x01
+ 8c0:  9a 81           ldd     r25, Y+2        ; 0x02
+ 8c2:  8b 35           cpi     r24, 0x5B       ; 91
+ 8c4:  91 05           cpc     r25, r1
+ 8c6:  b1 f7           brne    .-20            ; 0x8b4 <checkFullLine+0x94>
+ 8c8:  21 50           subi    r18, 0x01       ; 1
+ 8ca:  30 40           sbci    r19, 0x00       ; 0
+ 8cc:  81 f7           brne    .-32            ; 0x8ae <checkFullLine+0x8e>
+ 8ce:  f3 94           inc     r15
+ 8d0:  83 e0           ldi     r24, 0x03       ; 3
+ 8d2:  f8 16           cp      r15, r24
+ 8d4:  71 f6           brne    .-100           ; 0x872 <checkFullLine+0x52>
+ 8d6:  90 91 8c 01     lds     r25, 0x018C
+ 8da:  9d 0d           add     r25, r13
+ 8dc:  08 c0           rjmp    .+16            ; 0x8ee <checkFullLine+0xce>
+ 8de:  e9 2f           mov     r30, r25
+ 8e0:  f0 e0           ldi     r31, 0x00       ; 0
+ 8e2:  ee 56           subi    r30, 0x6E       ; 110
+ 8e4:  fe 4f           sbci    r31, 0xFE       ; 254
+ 8e6:  82 91           ld      r24, -Z
+ 8e8:  31 96           adiw    r30, 0x01       ; 1
+ 8ea:  80 83           st      Z, r24
+ 8ec:  91 50           subi    r25, 0x01       ; 1
+ 8ee:  99 23           and     r25, r25
+ 8f0:  b1 f7           brne    .-20            ; 0x8de <checkFullLine+0xbe>
+ 8f2:  0e 94 39 01     call    0x272   ; 0x272 <bleepBleepSound>
+ 8f6:  e0 e0           ldi     r30, 0x00       ; 0
+ 8f8:  f1 e0           ldi     r31, 0x01       ; 1
+ 8fa:  07 c0           rjmp    .+14            ; 0x90a <checkFullLine+0xea>
+ 8fc:  80 91 c0 00     lds     r24, 0x00C0
+ 900:  85 ff           sbrs    r24, 5
+ 902:  fc cf           rjmp    .-8             ; 0x8fc <checkFullLine+0xdc>
+ 904:  90 93 c6 00     sts     0x00C6, r25
+ 908:  31 96           adiw    r30, 0x01       ; 1
+ 90a:  90 81           ld      r25, Z
+ 90c:  99 23           and     r25, r25
+ 90e:  b1 f7           brne    .-20            ; 0x8fc <checkFullLine+0xdc>
+ 910:  80 91 86 01     lds     r24, 0x0186
+ 914:  8f 5f           subi    r24, 0xFF       ; 255
+ 916:  80 93 86 01     sts     0x0186, r24
+ 91a:  81 50           subi    r24, 0x01       ; 1
+ 91c:  0e 94 9c 00     call    0x138   ; 0x138 <transmit_4digit_USART0>
+ 920:  e8 e0           ldi     r30, 0x08       ; 8
+ 922:  f1 e0           ldi     r31, 0x01       ; 1
+ 924:  07 c0           rjmp    .+14            ; 0x934 <checkFullLine+0x114>
+ 926:  80 91 c0 00     lds     r24, 0x00C0
+ 92a:  85 ff           sbrs    r24, 5
+ 92c:  fc cf           rjmp    .-8             ; 0x926 <checkFullLine+0x106>
+ 92e:  90 93 c6 00     sts     0x00C6, r25
+ 932:  31 96           adiw    r30, 0x01       ; 1
+ 934:  90 81           ld      r25, Z
+ 936:  99 23           and     r25, r25
+ 938:  b1 f7           brne    .-20            ; 0x926 <checkFullLine+0x106>
+ 93a:  0f 5f           subi    r16, 0xFF       ; 255
+ 93c:  1f 4f           sbci    r17, 0xFF       ; 255
+ 93e:  e3 94           inc     r14
+ 940:  04 30           cpi     r16, 0x04       ; 4
+ 942:  11 05           cpc     r17, r1
+ 944:  09 f0           breq    .+2             ; 0x948 <checkFullLine+0x128>
+ 946:  84 cf           rjmp    .-248           ; 0x850 <checkFullLine+0x30>
+ 948:  0f 90           pop     r0
+ 94a:  0f 90           pop     r0
+ 94c:  cf 91           pop     r28
+ 94e:  df 91           pop     r29
+ 950:  1f 91           pop     r17
+ 952:  0f 91           pop     r16
+ 954:  ff 90           pop     r15
+ 956:  ef 90           pop     r14
+ 958:  df 90           pop     r13
+ 95a:  cf 90           pop     r12
+ 95c:  08 95           ret
+
+0000095e <gameOver>:
+ 95e:  af 92           push    r10
+ 960:  bf 92           push    r11
+ 962:  cf 92           push    r12
+ 964:  df 92           push    r13
+ 966:  ff 92           push    r15
+ 968:  0f 93           push    r16
+ 96a:  1f 93           push    r17
+ 96c:  df 93           push    r29
+ 96e:  cf 93           push    r28
+ 970:  00 d0           rcall   .+0             ; 0x972 <gameOver+0x14>
+ 972:  00 d0           rcall   .+0             ; 0x974 <gameOver+0x16>
+ 974:  0f 92           push    r0
+ 976:  cd b7           in      r28, 0x3d       ; 61
+ 978:  de b7           in      r29, 0x3e       ; 62
+ 97a:  de 01           movw    r26, r28
+ 97c:  13 96           adiw    r26, 0x03       ; 3
+ 97e:  e7 e8           ldi     r30, 0x87       ; 135
+ 980:  f1 e0           ldi     r31, 0x01       ; 1
+ 982:  83 e0           ldi     r24, 0x03       ; 3
+ 984:  01 90           ld      r0, Z+
+ 986:  0d 92           st      X+, r0
+ 988:  81 50           subi    r24, 0x01       ; 1
+ 98a:  e1 f7           brne    .-8             ; 0x984 <gameOver+0x26>
+ 98c:  10 e0           ldi     r17, 0x00       ; 0
+ 98e:  1f 5f           subi    r17, 0xFF       ; 255
+ 990:  81 e0           ldi     r24, 0x01       ; 1
+ 992:  61 2f           mov     r22, r17
+ 994:  4f ef           ldi     r20, 0xFF       ; 255
+ 996:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ 99a:  24 ef           ldi     r18, 0xF4       ; 244
+ 99c:  31 e0           ldi     r19, 0x01       ; 1
+ 99e:  1a 82           std     Y+2, r1 ; 0x02
+ 9a0:  19 82           std     Y+1, r1 ; 0x01
+ 9a2:  05 c0           rjmp    .+10            ; 0x9ae <gameOver+0x50>
+ 9a4:  89 81           ldd     r24, Y+1        ; 0x01
+ 9a6:  9a 81           ldd     r25, Y+2        ; 0x02
+ 9a8:  01 96           adiw    r24, 0x01       ; 1
+ 9aa:  9a 83           std     Y+2, r25        ; 0x02
+ 9ac:  89 83           std     Y+1, r24        ; 0x01
+ 9ae:  89 81           ldd     r24, Y+1        ; 0x01
+ 9b0:  9a 81           ldd     r25, Y+2        ; 0x02
+ 9b2:  8b 35           cpi     r24, 0x5B       ; 91
+ 9b4:  91 05           cpc     r25, r1
+ 9b6:  b1 f7           brne    .-20            ; 0x9a4 <gameOver+0x46>
+ 9b8:  21 50           subi    r18, 0x01       ; 1
+ 9ba:  30 40           sbci    r19, 0x00       ; 0
+ 9bc:  81 f7           brne    .-32            ; 0x99e <gameOver+0x40>
+ 9be:  18 30           cpi     r17, 0x08       ; 8
+ 9c0:  31 f7           brne    .-52            ; 0x98e <gameOver+0x30>
+ 9c2:  02 e9           ldi     r16, 0x92       ; 146
+ 9c4:  11 e0           ldi     r17, 0x01       ; 1
+ 9c6:  ff 24           eor     r15, r15
+ 9c8:  f3 94           inc     r15
+ 9ca:  81 e0           ldi     r24, 0x01       ; 1
+ 9cc:  6f 2d           mov     r22, r15
+ 9ce:  40 e0           ldi     r20, 0x00       ; 0
+ 9d0:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ 9d4:  f8 01           movw    r30, r16
+ 9d6:  10 82           st      Z, r1
+ 9d8:  24 ef           ldi     r18, 0xF4       ; 244
+ 9da:  31 e0           ldi     r19, 0x01       ; 1
+ 9dc:  1a 82           std     Y+2, r1 ; 0x02
+ 9de:  19 82           std     Y+1, r1 ; 0x01
+ 9e0:  05 c0           rjmp    .+10            ; 0x9ec <gameOver+0x8e>
+ 9e2:  89 81           ldd     r24, Y+1        ; 0x01
+ 9e4:  9a 81           ldd     r25, Y+2        ; 0x02
+ 9e6:  01 96           adiw    r24, 0x01       ; 1
+ 9e8:  9a 83           std     Y+2, r25        ; 0x02
+ 9ea:  89 83           std     Y+1, r24        ; 0x01
+ 9ec:  89 81           ldd     r24, Y+1        ; 0x01
+ 9ee:  9a 81           ldd     r25, Y+2        ; 0x02
+ 9f0:  8b 35           cpi     r24, 0x5B       ; 91
+ 9f2:  91 05           cpc     r25, r1
+ 9f4:  b1 f7           brne    .-20            ; 0x9e2 <gameOver+0x84>
+ 9f6:  21 50           subi    r18, 0x01       ; 1
+ 9f8:  30 40           sbci    r19, 0x00       ; 0
+ 9fa:  81 f7           brne    .-32            ; 0x9dc <gameOver+0x7e>
+ 9fc:  0f 5f           subi    r16, 0xFF       ; 255
+ 9fe:  1f 4f           sbci    r17, 0xFF       ; 255
+ a00:  f8 e0           ldi     r31, 0x08       ; 8
+ a02:  ff 16           cp      r15, r31
+ a04:  09 f7           brne    .-62            ; 0x9c8 <gameOver+0x6a>
+ a06:  ff 24           eor     r15, r15
+ a08:  13 e0           ldi     r17, 0x03       ; 3
+ a0a:  a1 2e           mov     r10, r17
+ a0c:  b1 2c           mov     r11, r1
+ a0e:  ac 0e           add     r10, r28
+ a10:  bd 1e           adc     r11, r29
+ a12:  32 c0           rjmp    .+100           ; 0xa78 <gameOver+0x11a>
+ a14:  00 e0           ldi     r16, 0x00       ; 0
+ a16:  10 e0           ldi     r17, 0x00       ; 0
+ a18:  cf 2c           mov     r12, r15
+ a1a:  dd 24           eor     r13, r13
+ a1c:  20 2f           mov     r18, r16
+ a1e:  2f 5f           subi    r18, 0xFF       ; 255
+ a20:  c8 01           movw    r24, r16
+ a22:  8c 0d           add     r24, r12
+ a24:  9d 1d           adc     r25, r13
+ a26:  63 e0           ldi     r22, 0x03       ; 3
+ a28:  70 e0           ldi     r23, 0x00       ; 0
+ a2a:  0e 94 d2 06     call    0xda4   ; 0xda4 <__divmodhi4>
+ a2e:  f5 01           movw    r30, r10
+ a30:  e8 0f           add     r30, r24
+ a32:  f9 1f           adc     r31, r25
+ a34:  81 e0           ldi     r24, 0x01       ; 1
+ a36:  62 2f           mov     r22, r18
+ a38:  40 81           ld      r20, Z
+ a3a:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ a3e:  0f 5f           subi    r16, 0xFF       ; 255
+ a40:  1f 4f           sbci    r17, 0xFF       ; 255
+ a42:  08 30           cpi     r16, 0x08       ; 8
+ a44:  11 05           cpc     r17, r1
+ a46:  51 f7           brne    .-44            ; 0xa1c <gameOver+0xbe>
+ a48:  81 e0           ldi     r24, 0x01       ; 1
+ a4a:  8f 15           cp      r24, r15
+ a4c:  10 f4           brcc    .+4             ; 0xa52 <gameOver+0xf4>
+ a4e:  ff 24           eor     r15, r15
+ a50:  01 c0           rjmp    .+2             ; 0xa54 <gameOver+0xf6>
+ a52:  f3 94           inc     r15
+ a54:  28 ee           ldi     r18, 0xE8       ; 232
+ a56:  33 e0           ldi     r19, 0x03       ; 3
+ a58:  1a 82           std     Y+2, r1 ; 0x02
+ a5a:  19 82           std     Y+1, r1 ; 0x01
+ a5c:  05 c0           rjmp    .+10            ; 0xa68 <gameOver+0x10a>
+ a5e:  89 81           ldd     r24, Y+1        ; 0x01
+ a60:  9a 81           ldd     r25, Y+2        ; 0x02
+ a62:  01 96           adiw    r24, 0x01       ; 1
+ a64:  9a 83           std     Y+2, r25        ; 0x02
+ a66:  89 83           std     Y+1, r24        ; 0x01
+ a68:  89 81           ldd     r24, Y+1        ; 0x01
+ a6a:  9a 81           ldd     r25, Y+2        ; 0x02
+ a6c:  8b 35           cpi     r24, 0x5B       ; 91
+ a6e:  91 05           cpc     r25, r1
+ a70:  b1 f7           brne    .-20            ; 0xa5e <gameOver+0x100>
+ a72:  21 50           subi    r18, 0x01       ; 1
+ a74:  30 40           sbci    r19, 0x00       ; 0
+ a76:  81 f7           brne    .-32            ; 0xa58 <gameOver+0xfa>
+ a78:  80 91 9d 01     lds     r24, 0x019D
+ a7c:  88 23           and     r24, r24
+ a7e:  51 f2           breq    .-108           ; 0xa14 <gameOver+0xb6>
+ a80:  81 e0           ldi     r24, 0x01       ; 1
+ a82:  80 93 86 01     sts     0x0186, r24
+ a86:  e2 e1           ldi     r30, 0x12       ; 18
+ a88:  f1 e0           ldi     r31, 0x01       ; 1
+ a8a:  07 c0           rjmp    .+14            ; 0xa9a <gameOver+0x13c>
+ a8c:  80 91 c0 00     lds     r24, 0x00C0
+ a90:  85 ff           sbrs    r24, 5
+ a92:  fc cf           rjmp    .-8             ; 0xa8c <gameOver+0x12e>
+ a94:  90 93 c6 00     sts     0x00C6, r25
+ a98:  31 96           adiw    r30, 0x01       ; 1
+ a9a:  90 81           ld      r25, Z
+ a9c:  99 23           and     r25, r25
+ a9e:  b1 f7           brne    .-20            ; 0xa8c <gameOver+0x12e>
+ aa0:  80 91 8d 01     lds     r24, 0x018D
+ aa4:  90 91 8e 01     lds     r25, 0x018E
+ aa8:  65 e0           ldi     r22, 0x05       ; 5
+ aaa:  70 e0           ldi     r23, 0x00       ; 0
+ aac:  0e 94 be 06     call    0xd7c   ; 0xd7c <__udivmodhi4>
+ ab0:  80 93 84 01     sts     0x0184, r24
+ ab4:  10 92 8b 01     sts     0x018B, r1
+ ab8:  0f 90           pop     r0
+ aba:  0f 90           pop     r0
+ abc:  0f 90           pop     r0
+ abe:  0f 90           pop     r0
+ ac0:  0f 90           pop     r0
+ ac2:  cf 91           pop     r28
+ ac4:  df 91           pop     r29
+ ac6:  1f 91           pop     r17
+ ac8:  0f 91           pop     r16
+ aca:  ff 90           pop     r15
+ acc:  df 90           pop     r13
+ ace:  cf 90           pop     r12
+ ad0:  bf 90           pop     r11
+ ad2:  af 90           pop     r10
+ ad4:  08 95           ret
+
+00000ad6 <stopFigure>:
+ ad6:  1f 93           push    r17
+ ad8:  cf 93           push    r28
+ ada:  df 93           push    r29
+ adc:  10 91 85 01     lds     r17, 0x0185
+ ae0:  81 2f           mov     r24, r17
+ ae2:  90 e0           ldi     r25, 0x00       ; 0
+ ae4:  44 e0           ldi     r20, 0x04       ; 4
+ ae6:  50 e0           ldi     r21, 0x00       ; 0
+ ae8:  48 1b           sub     r20, r24
+ aea:  59 0b           sbc     r21, r25
+ aec:  ec 01           movw    r28, r24
+ aee:  24 97           sbiw    r28, 0x04       ; 4
+ af0:  80 91 8c 01     lds     r24, 0x018C
+ af4:  30 91 8b 01     lds     r19, 0x018B
+ af8:  20 91 84 01     lds     r18, 0x0184
+ afc:  e2 2f           mov     r30, r18
+ afe:  f0 e0           ldi     r31, 0x00       ; 0
+ b00:  ee 0f           add     r30, r30
+ b02:  ff 1f           adc     r31, r31
+ b04:  ee 0f           add     r30, r30
+ b06:  ff 1f           adc     r31, r31
+ b08:  e3 0f           add     r30, r19
+ b0a:  f1 1d           adc     r31, r1
+ b0c:  ee 0f           add     r30, r30
+ b0e:  ff 1f           adc     r31, r31
+ b10:  ee 0f           add     r30, r30
+ b12:  ff 1f           adc     r31, r31
+ b14:  ec 5c           subi    r30, 0xCC       ; 204
+ b16:  fe 4f           sbci    r31, 0xFE       ; 254
+ b18:  90 e0           ldi     r25, 0x00       ; 0
+ b1a:  dc 01           movw    r26, r24
+ b1c:  ae 56           subi    r26, 0x6E       ; 110
+ b1e:  be 4f           sbci    r27, 0xFE       ; 254
+ b20:  bc 01           movw    r22, r24
+ b22:  6a 56           subi    r22, 0x6A       ; 106
+ b24:  7e 4f           sbci    r23, 0xFE       ; 254
+ b26:  80 81           ld      r24, Z
+ b28:  28 2f           mov     r18, r24
+ b2a:  30 e0           ldi     r19, 0x00       ; 0
+ b2c:  15 30           cpi     r17, 0x05       ; 5
+ b2e:  38 f4           brcc    .+14            ; 0xb3e <stopFigure+0x68>
+ b30:  04 2e           mov     r0, r20
+ b32:  02 c0           rjmp    .+4             ; 0xb38 <stopFigure+0x62>
+ b34:  22 0f           add     r18, r18
+ b36:  33 1f           adc     r19, r19
+ b38:  0a 94           dec     r0
+ b3a:  e2 f7           brpl    .-8             ; 0xb34 <stopFigure+0x5e>
+ b3c:  06 c0           rjmp    .+12            ; 0xb4a <stopFigure+0x74>
+ b3e:  0c 2e           mov     r0, r28
+ b40:  02 c0           rjmp    .+4             ; 0xb46 <stopFigure+0x70>
+ b42:  35 95           asr     r19
+ b44:  27 95           ror     r18
+ b46:  0a 94           dec     r0
+ b48:  e2 f7           brpl    .-8             ; 0xb42 <stopFigure+0x6c>
+ b4a:  8c 91           ld      r24, X
+ b4c:  82 2b           or      r24, r18
+ b4e:  8d 93           st      X+, r24
+ b50:  31 96           adiw    r30, 0x01       ; 1
+ b52:  a6 17           cp      r26, r22
+ b54:  b7 07           cpc     r27, r23
+ b56:  39 f7           brne    .-50            ; 0xb26 <stopFigure+0x50>
+ b58:  0e 94 10 04     call    0x820   ; 0x820 <checkFullLine>
+ b5c:  10 92 8c 01     sts     0x018C, r1
+ b60:  10 92 8b 01     sts     0x018B, r1
+ b64:  84 e0           ldi     r24, 0x04       ; 4
+ b66:  80 93 85 01     sts     0x0185, r24
+ b6a:  80 91 91 01     lds     r24, 0x0191
+ b6e:  80 93 84 01     sts     0x0184, r24
+ b72:  0e 94 76 02     call    0x4ec   ; 0x4ec <checkStart>
+ b76:  81 30           cpi     r24, 0x01       ; 1
+ b78:  19 f0           breq    .+6             ; 0xb80 <stopFigure+0xaa>
+ b7a:  0e 94 d3 01     call    0x3a6   ; 0x3a6 <redrawScreen>
+ b7e:  02 c0           rjmp    .+4             ; 0xb84 <stopFigure+0xae>
+ b80:  0e 94 af 04     call    0x95e   ; 0x95e <gameOver>
+ b84:  df 91           pop     r29
+ b86:  cf 91           pop     r28
+ b88:  1f 91           pop     r17
+ b8a:  08 95           ret
+
+00000b8c <main>:
+ b8c:  1f 93           push    r17
+ b8e:  23 9a           sbi     0x04, 3 ; 4
+ b90:  25 9a           sbi     0x04, 5 ; 4
+ b92:  24 9a           sbi     0x04, 4 ; 4
+ b94:  22 9a           sbi     0x04, 2 ; 4
+ b96:  81 e0           ldi     r24, 0x01       ; 1
+ b98:  60 91 31 01     lds     r22, 0x0131
+ b9c:  47 e0           ldi     r20, 0x07       ; 7
+ b9e:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ ba2:  81 e0           ldi     r24, 0x01       ; 1
+ ba4:  60 91 2f 01     lds     r22, 0x012F
+ ba8:  40 e0           ldi     r20, 0x00       ; 0
+ baa:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ bae:  81 e0           ldi     r24, 0x01       ; 1
+ bb0:  60 91 32 01     lds     r22, 0x0132
+ bb4:  41 e0           ldi     r20, 0x01       ; 1
+ bb6:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ bba:  81 e0           ldi     r24, 0x01       ; 1
+ bbc:  60 91 33 01     lds     r22, 0x0133
+ bc0:  40 e0           ldi     r20, 0x00       ; 0
+ bc2:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ bc6:  10 e0           ldi     r17, 0x00       ; 0
+ bc8:  1f 5f           subi    r17, 0xFF       ; 255
+ bca:  81 e0           ldi     r24, 0x01       ; 1
+ bcc:  61 2f           mov     r22, r17
+ bce:  40 e0           ldi     r20, 0x00       ; 0
+ bd0:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ bd4:  18 30           cpi     r17, 0x08       ; 8
+ bd6:  c1 f7           brne    .-16            ; 0xbc8 <main+0x3c>
+ bd8:  81 e0           ldi     r24, 0x01       ; 1
+ bda:  60 91 30 01     lds     r22, 0x0130
+ bde:  4f e0           ldi     r20, 0x0F       ; 15
+ be0:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ be4:  87 e6           ldi     r24, 0x67       ; 103
+ be6:  90 e0           ldi     r25, 0x00       ; 0
+ be8:  90 93 c5 00     sts     0x00C5, r25
+ bec:  80 93 c4 00     sts     0x00C4, r24
+ bf0:  86 e0           ldi     r24, 0x06       ; 6
+ bf2:  80 93 c2 00     sts     0x00C2, r24
+ bf6:  80 91 c1 00     lds     r24, 0x00C1
+ bfa:  88 61           ori     r24, 0x18       ; 24
+ bfc:  80 93 c1 00     sts     0x00C1, r24
+ c00:  80 91 c1 00     lds     r24, 0x00C1
+ c04:  80 68           ori     r24, 0x80       ; 128
+ c06:  80 93 c1 00     sts     0x00C1, r24
+ c0a:  78 94           sei
+ c0c:  8f ef           ldi     r24, 0xFF       ; 255
+ c0e:  80 93 9a 01     sts     0x019A, r24
+ c12:  80 91 8d 01     lds     r24, 0x018D
+ c16:  83 70           andi    r24, 0x03       ; 3
+ c18:  80 93 84 01     sts     0x0184, r24
+ c1c:  e2 e1           ldi     r30, 0x12       ; 18
+ c1e:  f1 e0           ldi     r31, 0x01       ; 1
+ c20:  07 c0           rjmp    .+14            ; 0xc30 <main+0xa4>
+ c22:  80 91 c0 00     lds     r24, 0x00C0
+ c26:  85 ff           sbrs    r24, 5
+ c28:  fc cf           rjmp    .-8             ; 0xc22 <main+0x96>
+ c2a:  90 93 c6 00     sts     0x00C6, r25
+ c2e:  31 96           adiw    r30, 0x01       ; 1
+ c30:  90 81           ld      r25, Z
+ c32:  99 23           and     r25, r25
+ c34:  b1 f7           brne    .-20            ; 0xc22 <main+0x96>
+ c36:  60 91 8d 01     lds     r22, 0x018D
+ c3a:  70 91 8e 01     lds     r23, 0x018E
+ c3e:  80 91 8f 01     lds     r24, 0x018F
+ c42:  90 91 90 01     lds     r25, 0x0190
+ c46:  20 e2           ldi     r18, 0x20       ; 32
+ c48:  3e e4           ldi     r19, 0x4E       ; 78
+ c4a:  40 e0           ldi     r20, 0x00       ; 0
+ c4c:  50 e0           ldi     r21, 0x00       ; 0
+ c4e:  0e 94 e5 06     call    0xdca   ; 0xdca <__udivmodsi4>
+ c52:  61 15           cp      r22, r1
+ c54:  71 05           cpc     r23, r1
+ c56:  81 05           cpc     r24, r1
+ c58:  91 05           cpc     r25, r1
+ c5a:  09 f5           brne    .+66            ; 0xc9e <main+0x112>
+ c5c:  0e 94 d3 01     call    0x3a6   ; 0x3a6 <redrawScreen>
+ c60:  0e 94 2d 02     call    0x45a   ; 0x45a <checkDown>
+ c64:  81 30           cpi     r24, 0x01       ; 1
+ c66:  31 f0           breq    .+12            ; 0xc74 <main+0xe8>
+ c68:  80 91 8c 01     lds     r24, 0x018C
+ c6c:  8f 5f           subi    r24, 0xFF       ; 255
+ c6e:  80 93 8c 01     sts     0x018C, r24
+ c72:  15 c0           rjmp    .+42            ; 0xc9e <main+0x112>
+ c74:  90 91 9b 01     lds     r25, 0x019B
+ c78:  80 91 91 01     lds     r24, 0x0191
+ c7c:  98 17           cp      r25, r24
+ c7e:  19 f4           brne    .+6             ; 0xc86 <main+0xfa>
+ c80:  9f 5f           subi    r25, 0xFF       ; 255
+ c82:  90 93 91 01     sts     0x0191, r25
+ c86:  80 91 91 01     lds     r24, 0x0191
+ c8a:  86 30           cpi     r24, 0x06       ; 6
+ c8c:  10 f0           brcs    .+4             ; 0xc92 <main+0x106>
+ c8e:  10 92 91 01     sts     0x0191, r1
+ c92:  80 91 91 01     lds     r24, 0x0191
+ c96:  80 93 9b 01     sts     0x019B, r24
+ c9a:  0e 94 6b 05     call    0xad6   ; 0xad6 <stopFigure>
+ c9e:  20 91 8d 01     lds     r18, 0x018D
+ ca2:  30 91 8e 01     lds     r19, 0x018E
+ ca6:  40 91 8f 01     lds     r20, 0x018F
+ caa:  50 91 90 01     lds     r21, 0x0190
+ cae:  2f 5f           subi    r18, 0xFF       ; 255
+ cb0:  3f 4f           sbci    r19, 0xFF       ; 255
+ cb2:  4f 4f           sbci    r20, 0xFF       ; 255
+ cb4:  5f 4f           sbci    r21, 0xFF       ; 255
+ cb6:  20 93 8d 01     sts     0x018D, r18
+ cba:  30 93 8e 01     sts     0x018E, r19
+ cbe:  40 93 8f 01     sts     0x018F, r20
+ cc2:  50 93 90 01     sts     0x0190, r21
+ cc6:  90 91 9d 01     lds     r25, 0x019D
+ cca:  80 91 9c 01     lds     r24, 0x019C
+ cce:  98 17           cp      r25, r24
+ cd0:  09 f4           brne    .+2             ; 0xcd4 <main+0x148>
+ cd2:  b1 cf           rjmp    .-158           ; 0xc36 <main+0xaa>
+ cd4:  80 91 9d 01     lds     r24, 0x019D
+ cd8:  80 93 9c 01     sts     0x019C, r24
+ cdc:  82 2f           mov     r24, r18
+ cde:  83 70           andi    r24, 0x03       ; 3
+ ce0:  80 93 91 01     sts     0x0191, r24
+ ce4:  80 91 9d 01     lds     r24, 0x019D
+ ce8:  83 34           cpi     r24, 0x43       ; 67
+ cea:  69 f4           brne    .+26            ; 0xd06 <main+0x17a>
+ cec:  0e 94 36 03     call    0x66c   ; 0x66c <checkRight>
+ cf0:  81 30           cpi     r24, 0x01       ; 1
+ cf2:  29 f0           breq    .+10            ; 0xcfe <main+0x172>
+ cf4:  80 91 85 01     lds     r24, 0x0185
+ cf8:  8f 5f           subi    r24, 0xFF       ; 255
+ cfa:  80 93 85 01     sts     0x0185, r24
+ cfe:  0e 94 d3 01     call    0x3a6   ; 0x3a6 <redrawScreen>
+ d02:  0e 94 05 01     call    0x20a   ; 0x20a <beep>
+ d06:  80 91 9d 01     lds     r24, 0x019D
+ d0a:  84 34           cpi     r24, 0x44       ; 68
+ d0c:  69 f4           brne    .+26            ; 0xd28 <main+0x19c>
+ d0e:  0e 94 bf 02     call    0x57e   ; 0x57e <checkLeft>
+ d12:  81 30           cpi     r24, 0x01       ; 1
+ d14:  29 f0           breq    .+10            ; 0xd20 <main+0x194>
+ d16:  80 91 85 01     lds     r24, 0x0185
+ d1a:  81 50           subi    r24, 0x01       ; 1
+ d1c:  80 93 85 01     sts     0x0185, r24
+ d20:  0e 94 d3 01     call    0x3a6   ; 0x3a6 <redrawScreen>
+ d24:  0e 94 05 01     call    0x20a   ; 0x20a <beep>
+ d28:  80 91 9d 01     lds     r24, 0x019D
+ d2c:  82 34           cpi     r24, 0x42       ; 66
+ d2e:  69 f4           brne    .+26            ; 0xd4a <main+0x1be>
+ d30:  0e 94 2d 02     call    0x45a   ; 0x45a <checkDown>
+ d34:  81 30           cpi     r24, 0x01       ; 1
+ d36:  29 f0           breq    .+10            ; 0xd42 <main+0x1b6>
+ d38:  80 91 8c 01     lds     r24, 0x018C
+ d3c:  8f 5f           subi    r24, 0xFF       ; 255
+ d3e:  80 93 8c 01     sts     0x018C, r24
+ d42:  0e 94 d3 01     call    0x3a6   ; 0x3a6 <redrawScreen>
+ d46:  0e 94 05 01     call    0x20a   ; 0x20a <beep>
+ d4a:  80 91 9d 01     lds     r24, 0x019D
+ d4e:  81 34           cpi     r24, 0x41       ; 65
+ d50:  91 f4           brne    .+36            ; 0xd76 <main+0x1ea>
+ d52:  0e 94 ad 03     call    0x75a   ; 0x75a <checkTurn>
+ d56:  81 30           cpi     r24, 0x01       ; 1
+ d58:  71 f0           breq    .+28            ; 0xd76 <main+0x1ea>
+ d5a:  80 91 8b 01     lds     r24, 0x018B
+ d5e:  83 30           cpi     r24, 0x03       ; 3
+ d60:  20 f4           brcc    .+8             ; 0xd6a <main+0x1de>
+ d62:  8f 5f           subi    r24, 0xFF       ; 255
+ d64:  80 93 8b 01     sts     0x018B, r24
+ d68:  02 c0           rjmp    .+4             ; 0xd6e <main+0x1e2>
+ d6a:  10 92 8b 01     sts     0x018B, r1
+ d6e:  0e 94 d3 01     call    0x3a6   ; 0x3a6 <redrawScreen>
+ d72:  0e 94 05 01     call    0x20a   ; 0x20a <beep>
+ d76:  10 92 9d 01     sts     0x019D, r1
+ d7a:  5d cf           rjmp    .-326           ; 0xc36 <main+0xaa>
+
+00000d7c <__udivmodhi4>:
+ d7c:  aa 1b           sub     r26, r26
+ d7e:  bb 1b           sub     r27, r27
+ d80:  51 e1           ldi     r21, 0x11       ; 17
+ d82:  07 c0           rjmp    .+14            ; 0xd92 <__udivmodhi4_ep>
+
+00000d84 <__udivmodhi4_loop>:
+ d84:  aa 1f           adc     r26, r26
+ d86:  bb 1f           adc     r27, r27
+ d88:  a6 17           cp      r26, r22
+ d8a:  b7 07           cpc     r27, r23
+ d8c:  10 f0           brcs    .+4             ; 0xd92 <__udivmodhi4_ep>
+ d8e:  a6 1b           sub     r26, r22
+ d90:  b7 0b           sbc     r27, r23
+
+00000d92 <__udivmodhi4_ep>:
+ d92:  88 1f           adc     r24, r24
+ d94:  99 1f           adc     r25, r25
+ d96:  5a 95           dec     r21
+ d98:  a9 f7           brne    .-22            ; 0xd84 <__udivmodhi4_loop>
+ d9a:  80 95           com     r24
+ d9c:  90 95           com     r25
+ d9e:  bc 01           movw    r22, r24
+ da0:  cd 01           movw    r24, r26
+ da2:  08 95           ret
+
+00000da4 <__divmodhi4>:
+ da4:  97 fb           bst     r25, 7
+ da6:  09 2e           mov     r0, r25
+ da8:  07 26           eor     r0, r23
+ daa:  0a d0           rcall   .+20            ; 0xdc0 <__divmodhi4_neg1>
+ dac:  77 fd           sbrc    r23, 7
+ dae:  04 d0           rcall   .+8             ; 0xdb8 <__divmodhi4_neg2>
+ db0:  e5 df           rcall   .-54            ; 0xd7c <__udivmodhi4>
+ db2:  06 d0           rcall   .+12            ; 0xdc0 <__divmodhi4_neg1>
+ db4:  00 20           and     r0, r0
+ db6:  1a f4           brpl    .+6             ; 0xdbe <__divmodhi4_exit>
+
+00000db8 <__divmodhi4_neg2>:
+ db8:  70 95           com     r23
+ dba:  61 95           neg     r22
+ dbc:  7f 4f           sbci    r23, 0xFF       ; 255
+
+00000dbe <__divmodhi4_exit>:
+ dbe:  08 95           ret
+
+00000dc0 <__divmodhi4_neg1>:
+ dc0:  f6 f7           brtc    .-4             ; 0xdbe <__divmodhi4_exit>
+ dc2:  90 95           com     r25
+ dc4:  81 95           neg     r24
+ dc6:  9f 4f           sbci    r25, 0xFF       ; 255
+ dc8:  08 95           ret
+
+00000dca <__udivmodsi4>:
+ dca:  a1 e2           ldi     r26, 0x21       ; 33
+ dcc:  1a 2e           mov     r1, r26
+ dce:  aa 1b           sub     r26, r26
+ dd0:  bb 1b           sub     r27, r27
+ dd2:  fd 01           movw    r30, r26
+ dd4:  0d c0           rjmp    .+26            ; 0xdf0 <__udivmodsi4_ep>
+
+00000dd6 <__udivmodsi4_loop>:
+ dd6:  aa 1f           adc     r26, r26
+ dd8:  bb 1f           adc     r27, r27
+ dda:  ee 1f           adc     r30, r30
+ ddc:  ff 1f           adc     r31, r31
+ dde:  a2 17           cp      r26, r18
+ de0:  b3 07           cpc     r27, r19
+ de2:  e4 07           cpc     r30, r20
+ de4:  f5 07           cpc     r31, r21
+ de6:  20 f0           brcs    .+8             ; 0xdf0 <__udivmodsi4_ep>
+ de8:  a2 1b           sub     r26, r18
+ dea:  b3 0b           sbc     r27, r19
+ dec:  e4 0b           sbc     r30, r20
+ dee:  f5 0b           sbc     r31, r21
+
+00000df0 <__udivmodsi4_ep>:
+ df0:  66 1f           adc     r22, r22
+ df2:  77 1f           adc     r23, r23
+ df4:  88 1f           adc     r24, r24
+ df6:  99 1f           adc     r25, r25
+ df8:  1a 94           dec     r1
+ dfa:  69 f7           brne    .-38            ; 0xdd6 <__udivmodsi4_loop>
+ dfc:  60 95           com     r22
+ dfe:  70 95           com     r23
+ e00:  80 95           com     r24
+ e02:  90 95           com     r25
+ e04:  9b 01           movw    r18, r22
+ e06:  ac 01           movw    r20, r24
+ e08:  bd 01           movw    r22, r26
+ e0a:  cf 01           movw    r24, r30
+ e0c:  08 95           ret
+
+00000e0e <_exit>:
+ e0e:  f8 94           cli
+
+00000e10 <__stop_program>:
+ e10:  ff cf           rjmp    .-2             ; 0xe10 <__stop_program>
diff --git a/compiled.lst b/compiled.lst
new file mode 100644 (file)
index 0000000..57e0d88
--- /dev/null
@@ -0,0 +1,1716 @@
+
+compiled.elf:     file format elf32-avr
+
+Sections:
+Idx Name          Size      VMA       LMA       File off  Algn
+  0 .data         0000008a  00800100  00000e12  00000ea6  2**0
+                  CONTENTS, ALLOC, LOAD, DATA
+  1 .text         00000e12  00000000  00000000  00000094  2**1
+                  CONTENTS, ALLOC, LOAD, READONLY, CODE
+  2 .bss          00000014  0080018a  0080018a  00000f30  2**0
+                  ALLOC
+  3 .stab         000006b4  00000000  00000000  00000f30  2**2
+                  CONTENTS, READONLY, DEBUGGING
+  4 .stabstr      00000054  00000000  00000000  000015e4  2**0
+                  CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+00000000 <__vectors>:
+   0:  0c 94 34 00     jmp     0x68    ; 0x68 <__ctors_end>
+   4:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+   8:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+   c:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  10:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  14:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  18:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  1c:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  20:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  24:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  28:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  2c:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  30:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  34:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  38:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  3c:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  40:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  44:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  48:  0c 94 75 00     jmp     0xea    ; 0xea <__vector_18>
+  4c:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  50:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  54:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  58:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  5c:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  60:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+  64:  0c 94 51 00     jmp     0xa2    ; 0xa2 <__bad_interrupt>
+
+00000068 <__ctors_end>:
+  68:  11 24           eor     r1, r1
+  6a:  1f be           out     0x3f, r1        ; 63
+  6c:  cf ef           ldi     r28, 0xFF       ; 255
+  6e:  d4 e0           ldi     r29, 0x04       ; 4
+  70:  de bf           out     0x3e, r29       ; 62
+  72:  cd bf           out     0x3d, r28       ; 61
+
+00000074 <__do_copy_data>:
+  74:  11 e0           ldi     r17, 0x01       ; 1
+  76:  a0 e0           ldi     r26, 0x00       ; 0
+  78:  b1 e0           ldi     r27, 0x01       ; 1
+  7a:  e2 e1           ldi     r30, 0x12       ; 18
+  7c:  fe e0           ldi     r31, 0x0E       ; 14
+  7e:  02 c0           rjmp    .+4             ; 0x84 <.do_copy_data_start>
+
+00000080 <.do_copy_data_loop>:
+  80:  05 90           lpm     r0, Z+
+  82:  0d 92           st      X+, r0
+
+00000084 <.do_copy_data_start>:
+  84:  aa 38           cpi     r26, 0x8A       ; 138
+  86:  b1 07           cpc     r27, r17
+  88:  d9 f7           brne    .-10            ; 0x80 <.do_copy_data_loop>
+
+0000008a <__do_clear_bss>:
+  8a:  11 e0           ldi     r17, 0x01       ; 1
+  8c:  aa e8           ldi     r26, 0x8A       ; 138
+  8e:  b1 e0           ldi     r27, 0x01       ; 1
+  90:  01 c0           rjmp    .+2             ; 0x94 <.do_clear_bss_start>
+
+00000092 <.do_clear_bss_loop>:
+  92:  1d 92           st      X+, r1
+
+00000094 <.do_clear_bss_start>:
+  94:  ae 39           cpi     r26, 0x9E       ; 158
+  96:  b1 07           cpc     r27, r17
+  98:  e1 f7           brne    .-8             ; 0x92 <.do_clear_bss_loop>
+  9a:  0e 94 c6 05     call    0xb8c   ; 0xb8c <main>
+  9e:  0c 94 07 07     jmp     0xe0e   ; 0xe0e <_exit>
+
+000000a2 <__bad_interrupt>:
+  a2:  0c 94 00 00     jmp     0       ; 0x0 <__vectors>
+
+000000a6 <setRXCIE_USART0>:
+  a6:  e1 ec           ldi     r30, 0xC1       ; 193
+  a8:  f0 e0           ldi     r31, 0x00       ; 0
+  aa:  80 81           ld      r24, Z
+  ac:  80 68           ori     r24, 0x80       ; 128
+  ae:  80 83           st      Z, r24
+  b0:  08 95           ret
+
+000000b2 <init_USART0>:
+  b2:  90 93 c5 00     sts     0x00C5, r25
+  b6:  80 93 c4 00     sts     0x00C4, r24
+  ba:  86 e0           ldi     r24, 0x06       ; 6
+  bc:  80 93 c2 00     sts     0x00C2, r24
+  c0:  e1 ec           ldi     r30, 0xC1       ; 193
+  c2:  f0 e0           ldi     r31, 0x00       ; 0
+  c4:  80 81           ld      r24, Z
+  c6:  88 61           ori     r24, 0x18       ; 24
+  c8:  80 83           st      Z, r24
+  ca:  08 95           ret
+
+000000cc <receive_1byte_USART0>:
+  cc:  80 91 c0 00     lds     r24, 0x00C0
+  d0:  87 ff           sbrs    r24, 7
+  d2:  fc cf           rjmp    .-8             ; 0xcc <receive_1byte_USART0>
+  d4:  80 91 c6 00     lds     r24, 0x00C6
+  d8:  08 95           ret
+
+000000da <transmit_1byte_USART0>:
+  da:  98 2f           mov     r25, r24
+  dc:  80 91 c0 00     lds     r24, 0x00C0
+  e0:  85 ff           sbrs    r24, 5
+  e2:  fc cf           rjmp    .-8             ; 0xdc <transmit_1byte_USART0+0x2>
+  e4:  90 93 c6 00     sts     0x00C6, r25
+  e8:  08 95           ret
+
+000000ea <__vector_18>:
+  ea:  1f 92           push    r1
+  ec:  0f 92           push    r0
+  ee:  0f b6           in      r0, 0x3f        ; 63
+  f0:  0f 92           push    r0
+  f2:  11 24           eor     r1, r1
+  f4:  8f 93           push    r24
+  f6:  df 93           push    r29
+  f8:  cf 93           push    r28
+  fa:  0f 92           push    r0
+  fc:  cd b7           in      r28, 0x3d       ; 61
+  fe:  de b7           in      r29, 0x3e       ; 62
+ 100:  80 91 c6 00     lds     r24, 0x00C6
+ 104:  89 83           std     Y+1, r24        ; 0x01
+ 106:  89 81           ldd     r24, Y+1        ; 0x01
+ 108:  80 93 9d 01     sts     0x019D, r24
+ 10c:  0f 90           pop     r0
+ 10e:  cf 91           pop     r28
+ 110:  df 91           pop     r29
+ 112:  8f 91           pop     r24
+ 114:  0f 90           pop     r0
+ 116:  0f be           out     0x3f, r0        ; 63
+ 118:  0f 90           pop     r0
+ 11a:  1f 90           pop     r1
+ 11c:  18 95           reti
+
+0000011e <transmit_str_USART0>:
+ 11e:  fc 01           movw    r30, r24
+ 120:  07 c0           rjmp    .+14            ; 0x130 <transmit_str_USART0+0x12>
+ 122:  80 91 c0 00     lds     r24, 0x00C0
+ 126:  85 ff           sbrs    r24, 5
+ 128:  fc cf           rjmp    .-8             ; 0x122 <transmit_str_USART0+0x4>
+ 12a:  90 93 c6 00     sts     0x00C6, r25
+ 12e:  31 96           adiw    r30, 0x01       ; 1
+ 130:  90 81           ld      r25, Z
+ 132:  99 23           and     r25, r25
+ 134:  b1 f7           brne    .-20            ; 0x122 <transmit_str_USART0+0x4>
+ 136:  08 95           ret
+
+00000138 <transmit_4digit_USART0>:
+ 138:  cf 93           push    r28
+ 13a:  df 93           push    r29
+ 13c:  ec 01           movw    r28, r24
+ 13e:  28 ee           ldi     r18, 0xE8       ; 232
+ 140:  33 e0           ldi     r19, 0x03       ; 3
+ 142:  e0 e0           ldi     r30, 0x00       ; 0
+ 144:  f0 e0           ldi     r31, 0x00       ; 0
+ 146:  ce 01           movw    r24, r28
+ 148:  b9 01           movw    r22, r18
+ 14a:  0e 94 d2 06     call    0xda4   ; 0xda4 <__divmodhi4>
+ 14e:  46 2f           mov     r20, r22
+ 150:  80 91 c0 00     lds     r24, 0x00C0
+ 154:  85 ff           sbrs    r24, 5
+ 156:  fc cf           rjmp    .-8             ; 0x150 <transmit_4digit_USART0+0x18>
+ 158:  40 5d           subi    r20, 0xD0       ; 208
+ 15a:  40 93 c6 00     sts     0x00C6, r20
+ 15e:  40 53           subi    r20, 0x30       ; 48
+ 160:  c9 01           movw    r24, r18
+ 162:  6a e0           ldi     r22, 0x0A       ; 10
+ 164:  70 e0           ldi     r23, 0x00       ; 0
+ 166:  0e 94 d2 06     call    0xda4   ; 0xda4 <__divmodhi4>
+ 16a:  31 96           adiw    r30, 0x01       ; 1
+ 16c:  e4 30           cpi     r30, 0x04       ; 4
+ 16e:  f1 05           cpc     r31, r1
+ 170:  71 f0           breq    .+28            ; 0x18e <transmit_4digit_USART0+0x56>
+ 172:  84 2f           mov     r24, r20
+ 174:  90 e0           ldi     r25, 0x00       ; 0
+ 176:  ac 01           movw    r20, r24
+ 178:  42 9f           mul     r20, r18
+ 17a:  c0 01           movw    r24, r0
+ 17c:  43 9f           mul     r20, r19
+ 17e:  90 0d           add     r25, r0
+ 180:  52 9f           mul     r21, r18
+ 182:  90 0d           add     r25, r0
+ 184:  11 24           eor     r1, r1
+ 186:  c8 1b           sub     r28, r24
+ 188:  d9 0b           sbc     r29, r25
+ 18a:  9b 01           movw    r18, r22
+ 18c:  dc cf           rjmp    .-72            ; 0x146 <transmit_4digit_USART0+0xe>
+ 18e:  df 91           pop     r29
+ 190:  cf 91           pop     r28
+ 192:  08 95           ret
+
+00000194 <delay_ms>:
+ 194:  df 93           push    r29
+ 196:  cf 93           push    r28
+ 198:  00 d0           rcall   .+0             ; 0x19a <delay_ms+0x6>
+ 19a:  cd b7           in      r28, 0x3d       ; 61
+ 19c:  de b7           in      r29, 0x3e       ; 62
+ 19e:  9c 01           movw    r18, r24
+ 1a0:  0f c0           rjmp    .+30            ; 0x1c0 <delay_ms+0x2c>
+ 1a2:  1a 82           std     Y+2, r1 ; 0x02
+ 1a4:  19 82           std     Y+1, r1 ; 0x01
+ 1a6:  05 c0           rjmp    .+10            ; 0x1b2 <delay_ms+0x1e>
+ 1a8:  89 81           ldd     r24, Y+1        ; 0x01
+ 1aa:  9a 81           ldd     r25, Y+2        ; 0x02
+ 1ac:  01 96           adiw    r24, 0x01       ; 1
+ 1ae:  9a 83           std     Y+2, r25        ; 0x02
+ 1b0:  89 83           std     Y+1, r24        ; 0x01
+ 1b2:  89 81           ldd     r24, Y+1        ; 0x01
+ 1b4:  9a 81           ldd     r25, Y+2        ; 0x02
+ 1b6:  8b 35           cpi     r24, 0x5B       ; 91
+ 1b8:  91 05           cpc     r25, r1
+ 1ba:  b1 f7           brne    .-20            ; 0x1a8 <delay_ms+0x14>
+ 1bc:  21 50           subi    r18, 0x01       ; 1
+ 1be:  30 40           sbci    r19, 0x00       ; 0
+ 1c0:  21 15           cp      r18, r1
+ 1c2:  31 05           cpc     r19, r1
+ 1c4:  71 f7           brne    .-36            ; 0x1a2 <delay_ms+0xe>
+ 1c6:  0f 90           pop     r0
+ 1c8:  0f 90           pop     r0
+ 1ca:  cf 91           pop     r28
+ 1cc:  df 91           pop     r29
+ 1ce:  08 95           ret
+
+000001d0 <delay_ns>:
+ 1d0:  df 93           push    r29
+ 1d2:  cf 93           push    r28
+ 1d4:  00 d0           rcall   .+0             ; 0x1d6 <delay_ns+0x6>
+ 1d6:  cd b7           in      r28, 0x3d       ; 61
+ 1d8:  de b7           in      r29, 0x3e       ; 62
+ 1da:  9c 01           movw    r18, r24
+ 1dc:  0e c0           rjmp    .+28            ; 0x1fa <delay_ns+0x2a>
+ 1de:  1a 82           std     Y+2, r1 ; 0x02
+ 1e0:  19 82           std     Y+1, r1 ; 0x01
+ 1e2:  05 c0           rjmp    .+10            ; 0x1ee <delay_ns+0x1e>
+ 1e4:  89 81           ldd     r24, Y+1        ; 0x01
+ 1e6:  9a 81           ldd     r25, Y+2        ; 0x02
+ 1e8:  01 96           adiw    r24, 0x01       ; 1
+ 1ea:  9a 83           std     Y+2, r25        ; 0x02
+ 1ec:  89 83           std     Y+1, r24        ; 0x01
+ 1ee:  89 81           ldd     r24, Y+1        ; 0x01
+ 1f0:  9a 81           ldd     r25, Y+2        ; 0x02
+ 1f2:  09 97           sbiw    r24, 0x09       ; 9
+ 1f4:  b9 f7           brne    .-18            ; 0x1e4 <delay_ns+0x14>
+ 1f6:  21 50           subi    r18, 0x01       ; 1
+ 1f8:  30 40           sbci    r19, 0x00       ; 0
+ 1fa:  21 15           cp      r18, r1
+ 1fc:  31 05           cpc     r19, r1
+ 1fe:  79 f7           brne    .-34            ; 0x1de <delay_ns+0xe>
+ 200:  0f 90           pop     r0
+ 202:  0f 90           pop     r0
+ 204:  cf 91           pop     r28
+ 206:  df 91           pop     r29
+ 208:  08 95           ret
+
+0000020a <beep>:
+ 20a:  df 93           push    r29
+ 20c:  cf 93           push    r28
+ 20e:  00 d0           rcall   .+0             ; 0x210 <beep+0x6>
+ 210:  cd b7           in      r28, 0x3d       ; 61
+ 212:  de b7           in      r29, 0x3e       ; 62
+ 214:  40 e0           ldi     r20, 0x00       ; 0
+ 216:  2a 9a           sbi     0x05, 2 ; 5
+ 218:  21 e0           ldi     r18, 0x01       ; 1
+ 21a:  30 e0           ldi     r19, 0x00       ; 0
+ 21c:  1a 82           std     Y+2, r1 ; 0x02
+ 21e:  19 82           std     Y+1, r1 ; 0x01
+ 220:  05 c0           rjmp    .+10            ; 0x22c <beep+0x22>
+ 222:  89 81           ldd     r24, Y+1        ; 0x01
+ 224:  9a 81           ldd     r25, Y+2        ; 0x02
+ 226:  01 96           adiw    r24, 0x01       ; 1
+ 228:  9a 83           std     Y+2, r25        ; 0x02
+ 22a:  89 83           std     Y+1, r24        ; 0x01
+ 22c:  89 81           ldd     r24, Y+1        ; 0x01
+ 22e:  9a 81           ldd     r25, Y+2        ; 0x02
+ 230:  8b 35           cpi     r24, 0x5B       ; 91
+ 232:  91 05           cpc     r25, r1
+ 234:  b1 f7           brne    .-20            ; 0x222 <beep+0x18>
+ 236:  21 50           subi    r18, 0x01       ; 1
+ 238:  30 40           sbci    r19, 0x00       ; 0
+ 23a:  81 f7           brne    .-32            ; 0x21c <beep+0x12>
+ 23c:  2a 98           cbi     0x05, 2 ; 5
+ 23e:  21 e0           ldi     r18, 0x01       ; 1
+ 240:  30 e0           ldi     r19, 0x00       ; 0
+ 242:  1a 82           std     Y+2, r1 ; 0x02
+ 244:  19 82           std     Y+1, r1 ; 0x01
+ 246:  05 c0           rjmp    .+10            ; 0x252 <beep+0x48>
+ 248:  89 81           ldd     r24, Y+1        ; 0x01
+ 24a:  9a 81           ldd     r25, Y+2        ; 0x02
+ 24c:  01 96           adiw    r24, 0x01       ; 1
+ 24e:  9a 83           std     Y+2, r25        ; 0x02
+ 250:  89 83           std     Y+1, r24        ; 0x01
+ 252:  89 81           ldd     r24, Y+1        ; 0x01
+ 254:  9a 81           ldd     r25, Y+2        ; 0x02
+ 256:  8b 35           cpi     r24, 0x5B       ; 91
+ 258:  91 05           cpc     r25, r1
+ 25a:  b1 f7           brne    .-20            ; 0x248 <beep+0x3e>
+ 25c:  21 50           subi    r18, 0x01       ; 1
+ 25e:  30 40           sbci    r19, 0x00       ; 0
+ 260:  81 f7           brne    .-32            ; 0x242 <beep+0x38>
+ 262:  4f 5f           subi    r20, 0xFF       ; 255
+ 264:  44 36           cpi     r20, 0x64       ; 100
+ 266:  b9 f6           brne    .-82            ; 0x216 <beep+0xc>
+ 268:  0f 90           pop     r0
+ 26a:  0f 90           pop     r0
+ 26c:  cf 91           pop     r28
+ 26e:  df 91           pop     r29
+ 270:  08 95           ret
+
+00000272 <bleepBleepSound>:
+ 272:  df 93           push    r29
+ 274:  cf 93           push    r28
+ 276:  00 d0           rcall   .+0             ; 0x278 <bleepBleepSound+0x6>
+ 278:  cd b7           in      r28, 0x3d       ; 61
+ 27a:  de b7           in      r29, 0x3e       ; 62
+ 27c:  41 e0           ldi     r20, 0x01       ; 1
+ 27e:  50 e0           ldi     r21, 0x00       ; 0
+ 280:  2a c0           rjmp    .+84            ; 0x2d6 <bleepBleepSound+0x64>
+ 282:  2a 9a           sbi     0x05, 2 ; 5
+ 284:  9a 01           movw    r18, r20
+ 286:  1a 82           std     Y+2, r1 ; 0x02
+ 288:  19 82           std     Y+1, r1 ; 0x01
+ 28a:  05 c0           rjmp    .+10            ; 0x296 <bleepBleepSound+0x24>
+ 28c:  89 81           ldd     r24, Y+1        ; 0x01
+ 28e:  9a 81           ldd     r25, Y+2        ; 0x02
+ 290:  01 96           adiw    r24, 0x01       ; 1
+ 292:  9a 83           std     Y+2, r25        ; 0x02
+ 294:  89 83           std     Y+1, r24        ; 0x01
+ 296:  89 81           ldd     r24, Y+1        ; 0x01
+ 298:  9a 81           ldd     r25, Y+2        ; 0x02
+ 29a:  09 97           sbiw    r24, 0x09       ; 9
+ 29c:  b9 f7           brne    .-18            ; 0x28c <bleepBleepSound+0x1a>
+ 29e:  21 50           subi    r18, 0x01       ; 1
+ 2a0:  30 40           sbci    r19, 0x00       ; 0
+ 2a2:  89 f7           brne    .-30            ; 0x286 <bleepBleepSound+0x14>
+ 2a4:  2a 98           cbi     0x05, 2 ; 5
+ 2a6:  9a 01           movw    r18, r20
+ 2a8:  1a 82           std     Y+2, r1 ; 0x02
+ 2aa:  19 82           std     Y+1, r1 ; 0x01
+ 2ac:  05 c0           rjmp    .+10            ; 0x2b8 <bleepBleepSound+0x46>
+ 2ae:  89 81           ldd     r24, Y+1        ; 0x01
+ 2b0:  9a 81           ldd     r25, Y+2        ; 0x02
+ 2b2:  01 96           adiw    r24, 0x01       ; 1
+ 2b4:  9a 83           std     Y+2, r25        ; 0x02
+ 2b6:  89 83           std     Y+1, r24        ; 0x01
+ 2b8:  89 81           ldd     r24, Y+1        ; 0x01
+ 2ba:  9a 81           ldd     r25, Y+2        ; 0x02
+ 2bc:  09 97           sbiw    r24, 0x09       ; 9
+ 2be:  b9 f7           brne    .-18            ; 0x2ae <bleepBleepSound+0x3c>
+ 2c0:  21 50           subi    r18, 0x01       ; 1
+ 2c2:  30 40           sbci    r19, 0x00       ; 0
+ 2c4:  89 f7           brne    .-30            ; 0x2a8 <bleepBleepSound+0x36>
+ 2c6:  6f 5f           subi    r22, 0xFF       ; 255
+ 2c8:  64 36           cpi     r22, 0x64       ; 100
+ 2ca:  d9 f6           brne    .-74            ; 0x282 <bleepBleepSound+0x10>
+ 2cc:  46 5f           subi    r20, 0xF6       ; 246
+ 2ce:  5f 4f           sbci    r21, 0xFF       ; 255
+ 2d0:  49 32           cpi     r20, 0x29       ; 41
+ 2d2:  51 05           cpc     r21, r1
+ 2d4:  11 f0           breq    .+4             ; 0x2da <bleepBleepSound+0x68>
+ 2d6:  60 e0           ldi     r22, 0x00       ; 0
+ 2d8:  d4 cf           rjmp    .-88            ; 0x282 <bleepBleepSound+0x10>
+ 2da:  0f 90           pop     r0
+ 2dc:  0f 90           pop     r0
+ 2de:  cf 91           pop     r28
+ 2e0:  df 91           pop     r29
+ 2e2:  08 95           ret
+
+000002e4 <putByte>:
+ 2e4:  68 2f           mov     r22, r24
+ 2e6:  27 e0           ldi     r18, 0x07       ; 7
+ 2e8:  30 e0           ldi     r19, 0x00       ; 0
+ 2ea:  41 e0           ldi     r20, 0x01       ; 1
+ 2ec:  50 e0           ldi     r21, 0x00       ; 0
+ 2ee:  2c 98           cbi     0x05, 4 ; 5
+ 2f0:  ca 01           movw    r24, r20
+ 2f2:  02 2e           mov     r0, r18
+ 2f4:  02 c0           rjmp    .+4             ; 0x2fa <putByte+0x16>
+ 2f6:  88 0f           add     r24, r24
+ 2f8:  99 1f           adc     r25, r25
+ 2fa:  0a 94           dec     r0
+ 2fc:  e2 f7           brpl    .-8             ; 0x2f6 <putByte+0x12>
+ 2fe:  86 23           and     r24, r22
+ 300:  11 f0           breq    .+4             ; 0x306 <putByte+0x22>
+ 302:  2b 9a           sbi     0x05, 3 ; 5
+ 304:  01 c0           rjmp    .+2             ; 0x308 <putByte+0x24>
+ 306:  2b 98           cbi     0x05, 3 ; 5
+ 308:  2c 9a           sbi     0x05, 4 ; 5
+ 30a:  21 50           subi    r18, 0x01       ; 1
+ 30c:  30 40           sbci    r19, 0x00       ; 0
+ 30e:  8f ef           ldi     r24, 0xFF       ; 255
+ 310:  2f 3f           cpi     r18, 0xFF       ; 255
+ 312:  38 07           cpc     r19, r24
+ 314:  61 f7           brne    .-40            ; 0x2ee <putByte+0xa>
+ 316:  08 95           ret
+
+00000318 <maxOne>:
+ 318:  0f 93           push    r16
+ 31a:  1f 93           push    r17
+ 31c:  cf 93           push    r28
+ 31e:  df 93           push    r29
+ 320:  16 2f           mov     r17, r22
+ 322:  04 2f           mov     r16, r20
+ 324:  2d 98           cbi     0x05, 5 ; 5
+ 326:  21 e0           ldi     r18, 0x01       ; 1
+ 328:  30 e0           ldi     r19, 0x00       ; 0
+ 32a:  c8 2f           mov     r28, r24
+ 32c:  d0 e0           ldi     r29, 0x00       ; 0
+ 32e:  08 c0           rjmp    .+16            ; 0x340 <maxOne+0x28>
+ 330:  80 e0           ldi     r24, 0x00       ; 0
+ 332:  0e 94 72 01     call    0x2e4   ; 0x2e4 <putByte>
+ 336:  80 e0           ldi     r24, 0x00       ; 0
+ 338:  0e 94 72 01     call    0x2e4   ; 0x2e4 <putByte>
+ 33c:  20 e0           ldi     r18, 0x00       ; 0
+ 33e:  30 e0           ldi     r19, 0x00       ; 0
+ 340:  c2 17           cp      r28, r18
+ 342:  d3 07           cpc     r29, r19
+ 344:  ac f3           brlt    .-22            ; 0x330 <maxOne+0x18>
+ 346:  81 2f           mov     r24, r17
+ 348:  0e 94 72 01     call    0x2e4   ; 0x2e4 <putByte>
+ 34c:  80 2f           mov     r24, r16
+ 34e:  04 c0           rjmp    .+8             ; 0x358 <maxOne+0x40>
+ 350:  80 e0           ldi     r24, 0x00       ; 0
+ 352:  0e 94 72 01     call    0x2e4   ; 0x2e4 <putByte>
+ 356:  80 e0           ldi     r24, 0x00       ; 0
+ 358:  0e 94 72 01     call    0x2e4   ; 0x2e4 <putByte>
+ 35c:  21 97           sbiw    r28, 0x01       ; 1
+ 35e:  1c 16           cp      r1, r28
+ 360:  1d 06           cpc     r1, r29
+ 362:  b4 f3           brlt    .-20            ; 0x350 <maxOne+0x38>
+ 364:  2d 98           cbi     0x05, 5 ; 5
+ 366:  2d 9a           sbi     0x05, 5 ; 5
+ 368:  df 91           pop     r29
+ 36a:  cf 91           pop     r28
+ 36c:  1f 91           pop     r17
+ 36e:  0f 91           pop     r16
+ 370:  08 95           ret
+
+00000372 <moveLine>:
+ 372:  48 2f           mov     r20, r24
+ 374:  50 e0           ldi     r21, 0x00       ; 0
+ 376:  26 2f           mov     r18, r22
+ 378:  30 e0           ldi     r19, 0x00       ; 0
+ 37a:  65 30           cpi     r22, 0x05       ; 5
+ 37c:  58 f4           brcc    .+22            ; 0x394 <moveLine+0x22>
+ 37e:  84 e0           ldi     r24, 0x04       ; 4
+ 380:  90 e0           ldi     r25, 0x00       ; 0
+ 382:  82 1b           sub     r24, r18
+ 384:  93 0b           sbc     r25, r19
+ 386:  02 c0           rjmp    .+4             ; 0x38c <moveLine+0x1a>
+ 388:  44 0f           add     r20, r20
+ 38a:  55 1f           adc     r21, r21
+ 38c:  8a 95           dec     r24
+ 38e:  e2 f7           brpl    .-8             ; 0x388 <moveLine+0x16>
+ 390:  84 2f           mov     r24, r20
+ 392:  08 95           ret
+ 394:  24 50           subi    r18, 0x04       ; 4
+ 396:  30 40           sbci    r19, 0x00       ; 0
+ 398:  02 c0           rjmp    .+4             ; 0x39e <moveLine+0x2c>
+ 39a:  55 95           asr     r21
+ 39c:  47 95           ror     r20
+ 39e:  2a 95           dec     r18
+ 3a0:  e2 f7           brpl    .-8             ; 0x39a <moveLine+0x28>
+ 3a2:  84 2f           mov     r24, r20
+ 3a4:  08 95           ret
+
+000003a6 <redrawScreen>:
+ 3a6:  0f 93           push    r16
+ 3a8:  1f 93           push    r17
+ 3aa:  cf 93           push    r28
+ 3ac:  df 93           push    r29
+ 3ae:  c0 e0           ldi     r28, 0x00       ; 0
+ 3b0:  d0 e0           ldi     r29, 0x00       ; 0
+ 3b2:  04 e0           ldi     r16, 0x04       ; 4
+ 3b4:  10 e0           ldi     r17, 0x00       ; 0
+ 3b6:  80 91 8c 01     lds     r24, 0x018C
+ 3ba:  28 2f           mov     r18, r24
+ 3bc:  30 e0           ldi     r19, 0x00       ; 0
+ 3be:  c2 17           cp      r28, r18
+ 3c0:  d3 07           cpc     r29, r19
+ 3c2:  ec f0           brlt    .+58            ; 0x3fe <redrawScreen+0x58>
+ 3c4:  c9 01           movw    r24, r18
+ 3c6:  03 96           adiw    r24, 0x03       ; 3
+ 3c8:  8c 17           cp      r24, r28
+ 3ca:  9d 07           cpc     r25, r29
+ 3cc:  c4 f0           brlt    .+48            ; 0x3fe <redrawScreen+0x58>
+ 3ce:  ce 01           movw    r24, r28
+ 3d0:  82 1b           sub     r24, r18
+ 3d2:  93 0b           sbc     r25, r19
+ 3d4:  e0 91 84 01     lds     r30, 0x0184
+ 3d8:  f0 e0           ldi     r31, 0x00       ; 0
+ 3da:  20 91 8b 01     lds     r18, 0x018B
+ 3de:  ee 0f           add     r30, r30
+ 3e0:  ff 1f           adc     r31, r31
+ 3e2:  ee 0f           add     r30, r30
+ 3e4:  ff 1f           adc     r31, r31
+ 3e6:  e2 0f           add     r30, r18
+ 3e8:  f1 1d           adc     r31, r1
+ 3ea:  ee 0f           add     r30, r30
+ 3ec:  ff 1f           adc     r31, r31
+ 3ee:  ee 0f           add     r30, r30
+ 3f0:  ff 1f           adc     r31, r31
+ 3f2:  e8 0f           add     r30, r24
+ 3f4:  f9 1f           adc     r31, r25
+ 3f6:  ec 5c           subi    r30, 0xCC       ; 204
+ 3f8:  fe 4f           sbci    r31, 0xFE       ; 254
+ 3fa:  e0 81           ld      r30, Z
+ 3fc:  01 c0           rjmp    .+2             ; 0x400 <redrawScreen+0x5a>
+ 3fe:  e0 e0           ldi     r30, 0x00       ; 0
+ 400:  80 91 85 01     lds     r24, 0x0185
+ 404:  4e 2f           mov     r20, r30
+ 406:  50 e0           ldi     r21, 0x00       ; 0
+ 408:  28 2f           mov     r18, r24
+ 40a:  30 e0           ldi     r19, 0x00       ; 0
+ 40c:  85 30           cpi     r24, 0x05       ; 5
+ 40e:  48 f4           brcc    .+18            ; 0x422 <redrawScreen+0x7c>
+ 410:  c8 01           movw    r24, r16
+ 412:  82 1b           sub     r24, r18
+ 414:  93 0b           sbc     r25, r19
+ 416:  02 c0           rjmp    .+4             ; 0x41c <redrawScreen+0x76>
+ 418:  44 0f           add     r20, r20
+ 41a:  55 1f           adc     r21, r21
+ 41c:  8a 95           dec     r24
+ 41e:  e2 f7           brpl    .-8             ; 0x418 <redrawScreen+0x72>
+ 420:  07 c0           rjmp    .+14            ; 0x430 <redrawScreen+0x8a>
+ 422:  24 50           subi    r18, 0x04       ; 4
+ 424:  30 40           sbci    r19, 0x00       ; 0
+ 426:  02 c0           rjmp    .+4             ; 0x42c <redrawScreen+0x86>
+ 428:  55 95           asr     r21
+ 42a:  47 95           ror     r20
+ 42c:  2a 95           dec     r18
+ 42e:  e2 f7           brpl    .-8             ; 0x428 <redrawScreen+0x82>
+ 430:  ce 01           movw    r24, r28
+ 432:  8f 5f           subi    r24, 0xFF       ; 255
+ 434:  68 2f           mov     r22, r24
+ 436:  fe 01           movw    r30, r28
+ 438:  ee 56           subi    r30, 0x6E       ; 110
+ 43a:  fe 4f           sbci    r31, 0xFE       ; 254
+ 43c:  80 81           ld      r24, Z
+ 43e:  48 2b           or      r20, r24
+ 440:  81 e0           ldi     r24, 0x01       ; 1
+ 442:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ 446:  21 96           adiw    r28, 0x01       ; 1
+ 448:  c8 30           cpi     r28, 0x08       ; 8
+ 44a:  d1 05           cpc     r29, r1
+ 44c:  09 f0           breq    .+2             ; 0x450 <redrawScreen+0xaa>
+ 44e:  b3 cf           rjmp    .-154           ; 0x3b6 <redrawScreen+0x10>
+ 450:  df 91           pop     r29
+ 452:  cf 91           pop     r28
+ 454:  1f 91           pop     r17
+ 456:  0f 91           pop     r16
+ 458:  08 95           ret
+
+0000045a <checkDown>:
+ 45a:  1f 93           push    r17
+ 45c:  cf 93           push    r28
+ 45e:  df 93           push    r29
+ 460:  10 91 85 01     lds     r17, 0x0185
+ 464:  81 2f           mov     r24, r17
+ 466:  90 e0           ldi     r25, 0x00       ; 0
+ 468:  44 e0           ldi     r20, 0x04       ; 4
+ 46a:  50 e0           ldi     r21, 0x00       ; 0
+ 46c:  48 1b           sub     r20, r24
+ 46e:  59 0b           sbc     r21, r25
+ 470:  ec 01           movw    r28, r24
+ 472:  24 97           sbiw    r28, 0x04       ; 4
+ 474:  80 91 8c 01     lds     r24, 0x018C
+ 478:  30 91 8b 01     lds     r19, 0x018B
+ 47c:  20 91 84 01     lds     r18, 0x0184
+ 480:  e2 2f           mov     r30, r18
+ 482:  f0 e0           ldi     r31, 0x00       ; 0
+ 484:  ee 0f           add     r30, r30
+ 486:  ff 1f           adc     r31, r31
+ 488:  ee 0f           add     r30, r30
+ 48a:  ff 1f           adc     r31, r31
+ 48c:  e3 0f           add     r30, r19
+ 48e:  f1 1d           adc     r31, r1
+ 490:  ee 0f           add     r30, r30
+ 492:  ff 1f           adc     r31, r31
+ 494:  ee 0f           add     r30, r30
+ 496:  ff 1f           adc     r31, r31
+ 498:  ec 5c           subi    r30, 0xCC       ; 204
+ 49a:  fe 4f           sbci    r31, 0xFE       ; 254
+ 49c:  90 e0           ldi     r25, 0x00       ; 0
+ 49e:  dc 01           movw    r26, r24
+ 4a0:  ad 56           subi    r26, 0x6D       ; 109
+ 4a2:  be 4f           sbci    r27, 0xFE       ; 254
+ 4a4:  bc 01           movw    r22, r24
+ 4a6:  69 56           subi    r22, 0x69       ; 105
+ 4a8:  7e 4f           sbci    r23, 0xFE       ; 254
+ 4aa:  80 81           ld      r24, Z
+ 4ac:  28 2f           mov     r18, r24
+ 4ae:  30 e0           ldi     r19, 0x00       ; 0
+ 4b0:  15 30           cpi     r17, 0x05       ; 5
+ 4b2:  38 f4           brcc    .+14            ; 0x4c2 <checkDown+0x68>
+ 4b4:  04 2e           mov     r0, r20
+ 4b6:  02 c0           rjmp    .+4             ; 0x4bc <checkDown+0x62>
+ 4b8:  22 0f           add     r18, r18
+ 4ba:  33 1f           adc     r19, r19
+ 4bc:  0a 94           dec     r0
+ 4be:  e2 f7           brpl    .-8             ; 0x4b8 <checkDown+0x5e>
+ 4c0:  06 c0           rjmp    .+12            ; 0x4ce <checkDown+0x74>
+ 4c2:  0c 2e           mov     r0, r28
+ 4c4:  02 c0           rjmp    .+4             ; 0x4ca <checkDown+0x70>
+ 4c6:  35 95           asr     r19
+ 4c8:  27 95           ror     r18
+ 4ca:  0a 94           dec     r0
+ 4cc:  e2 f7           brpl    .-8             ; 0x4c6 <checkDown+0x6c>
+ 4ce:  8c 91           ld      r24, X
+ 4d0:  28 23           and     r18, r24
+ 4d2:  11 f0           breq    .+4             ; 0x4d8 <checkDown+0x7e>
+ 4d4:  81 e0           ldi     r24, 0x01       ; 1
+ 4d6:  06 c0           rjmp    .+12            ; 0x4e4 <checkDown+0x8a>
+ 4d8:  31 96           adiw    r30, 0x01       ; 1
+ 4da:  11 96           adiw    r26, 0x01       ; 1
+ 4dc:  a6 17           cp      r26, r22
+ 4de:  b7 07           cpc     r27, r23
+ 4e0:  21 f7           brne    .-56            ; 0x4aa <checkDown+0x50>
+ 4e2:  80 e0           ldi     r24, 0x00       ; 0
+ 4e4:  df 91           pop     r29
+ 4e6:  cf 91           pop     r28
+ 4e8:  1f 91           pop     r17
+ 4ea:  08 95           ret
+
+000004ec <checkStart>:
+ 4ec:  1f 93           push    r17
+ 4ee:  cf 93           push    r28
+ 4f0:  df 93           push    r29
+ 4f2:  10 91 85 01     lds     r17, 0x0185
+ 4f6:  81 2f           mov     r24, r17
+ 4f8:  90 e0           ldi     r25, 0x00       ; 0
+ 4fa:  44 e0           ldi     r20, 0x04       ; 4
+ 4fc:  50 e0           ldi     r21, 0x00       ; 0
+ 4fe:  48 1b           sub     r20, r24
+ 500:  59 0b           sbc     r21, r25
+ 502:  ec 01           movw    r28, r24
+ 504:  24 97           sbiw    r28, 0x04       ; 4
+ 506:  80 91 8c 01     lds     r24, 0x018C
+ 50a:  30 91 8b 01     lds     r19, 0x018B
+ 50e:  20 91 84 01     lds     r18, 0x0184
+ 512:  e2 2f           mov     r30, r18
+ 514:  f0 e0           ldi     r31, 0x00       ; 0
+ 516:  ee 0f           add     r30, r30
+ 518:  ff 1f           adc     r31, r31
+ 51a:  ee 0f           add     r30, r30
+ 51c:  ff 1f           adc     r31, r31
+ 51e:  e3 0f           add     r30, r19
+ 520:  f1 1d           adc     r31, r1
+ 522:  ee 0f           add     r30, r30
+ 524:  ff 1f           adc     r31, r31
+ 526:  ee 0f           add     r30, r30
+ 528:  ff 1f           adc     r31, r31
+ 52a:  ec 5c           subi    r30, 0xCC       ; 204
+ 52c:  fe 4f           sbci    r31, 0xFE       ; 254
+ 52e:  90 e0           ldi     r25, 0x00       ; 0
+ 530:  dc 01           movw    r26, r24
+ 532:  ae 56           subi    r26, 0x6E       ; 110
+ 534:  be 4f           sbci    r27, 0xFE       ; 254
+ 536:  bc 01           movw    r22, r24
+ 538:  6a 56           subi    r22, 0x6A       ; 106
+ 53a:  7e 4f           sbci    r23, 0xFE       ; 254
+ 53c:  80 81           ld      r24, Z
+ 53e:  28 2f           mov     r18, r24
+ 540:  30 e0           ldi     r19, 0x00       ; 0
+ 542:  15 30           cpi     r17, 0x05       ; 5
+ 544:  38 f4           brcc    .+14            ; 0x554 <__stack+0x55>
+ 546:  04 2e           mov     r0, r20
+ 548:  02 c0           rjmp    .+4             ; 0x54e <__stack+0x4f>
+ 54a:  22 0f           add     r18, r18
+ 54c:  33 1f           adc     r19, r19
+ 54e:  0a 94           dec     r0
+ 550:  e2 f7           brpl    .-8             ; 0x54a <__stack+0x4b>
+ 552:  06 c0           rjmp    .+12            ; 0x560 <__stack+0x61>
+ 554:  0c 2e           mov     r0, r28
+ 556:  02 c0           rjmp    .+4             ; 0x55c <__stack+0x5d>
+ 558:  35 95           asr     r19
+ 55a:  27 95           ror     r18
+ 55c:  0a 94           dec     r0
+ 55e:  e2 f7           brpl    .-8             ; 0x558 <__stack+0x59>
+ 560:  8c 91           ld      r24, X
+ 562:  28 23           and     r18, r24
+ 564:  11 f0           breq    .+4             ; 0x56a <__stack+0x6b>
+ 566:  81 e0           ldi     r24, 0x01       ; 1
+ 568:  06 c0           rjmp    .+12            ; 0x576 <__stack+0x77>
+ 56a:  31 96           adiw    r30, 0x01       ; 1
+ 56c:  11 96           adiw    r26, 0x01       ; 1
+ 56e:  a6 17           cp      r26, r22
+ 570:  b7 07           cpc     r27, r23
+ 572:  21 f7           brne    .-56            ; 0x53c <__stack+0x3d>
+ 574:  80 e0           ldi     r24, 0x00       ; 0
+ 576:  df 91           pop     r29
+ 578:  cf 91           pop     r28
+ 57a:  1f 91           pop     r17
+ 57c:  08 95           ret
+
+0000057e <checkLeft>:
+ 57e:  bf 92           push    r11
+ 580:  cf 92           push    r12
+ 582:  df 92           push    r13
+ 584:  ef 92           push    r14
+ 586:  ff 92           push    r15
+ 588:  0f 93           push    r16
+ 58a:  1f 93           push    r17
+ 58c:  cf 93           push    r28
+ 58e:  df 93           push    r29
+ 590:  50 91 85 01     lds     r21, 0x0185
+ 594:  85 2f           mov     r24, r21
+ 596:  90 e0           ldi     r25, 0x00       ; 0
+ 598:  24 e0           ldi     r18, 0x04       ; 4
+ 59a:  30 e0           ldi     r19, 0x00       ; 0
+ 59c:  69 01           movw    r12, r18
+ 59e:  c8 1a           sub     r12, r24
+ 5a0:  d9 0a           sbc     r13, r25
+ 5a2:  0c ef           ldi     r16, 0xFC       ; 252
+ 5a4:  e0 2e           mov     r14, r16
+ 5a6:  0f ef           ldi     r16, 0xFF       ; 255
+ 5a8:  f0 2e           mov     r15, r16
+ 5aa:  e8 0e           add     r14, r24
+ 5ac:  f9 1e           adc     r15, r25
+ 5ae:  b5 2e           mov     r11, r21
+ 5b0:  ba 94           dec     r11
+ 5b2:  8b 2d           mov     r24, r11
+ 5b4:  90 e0           ldi     r25, 0x00       ; 0
+ 5b6:  89 01           movw    r16, r18
+ 5b8:  08 1b           sub     r16, r24
+ 5ba:  19 0b           sbc     r17, r25
+ 5bc:  ec 01           movw    r28, r24
+ 5be:  24 97           sbiw    r28, 0x04       ; 4
+ 5c0:  80 91 8c 01     lds     r24, 0x018C
+ 5c4:  30 91 8b 01     lds     r19, 0x018B
+ 5c8:  20 91 84 01     lds     r18, 0x0184
+ 5cc:  e2 2f           mov     r30, r18
+ 5ce:  f0 e0           ldi     r31, 0x00       ; 0
+ 5d0:  ee 0f           add     r30, r30
+ 5d2:  ff 1f           adc     r31, r31
+ 5d4:  ee 0f           add     r30, r30
+ 5d6:  ff 1f           adc     r31, r31
+ 5d8:  e3 0f           add     r30, r19
+ 5da:  f1 1d           adc     r31, r1
+ 5dc:  ee 0f           add     r30, r30
+ 5de:  ff 1f           adc     r31, r31
+ 5e0:  ee 0f           add     r30, r30
+ 5e2:  ff 1f           adc     r31, r31
+ 5e4:  ec 5c           subi    r30, 0xCC       ; 204
+ 5e6:  fe 4f           sbci    r31, 0xFE       ; 254
+ 5e8:  90 e0           ldi     r25, 0x00       ; 0
+ 5ea:  dc 01           movw    r26, r24
+ 5ec:  ae 56           subi    r26, 0x6E       ; 110
+ 5ee:  be 4f           sbci    r27, 0xFE       ; 254
+ 5f0:  bc 01           movw    r22, r24
+ 5f2:  6a 56           subi    r22, 0x6A       ; 106
+ 5f4:  7e 4f           sbci    r23, 0xFE       ; 254
+ 5f6:  40 81           ld      r20, Z
+ 5f8:  24 2f           mov     r18, r20
+ 5fa:  30 e0           ldi     r19, 0x00       ; 0
+ 5fc:  55 30           cpi     r21, 0x05       ; 5
+ 5fe:  38 f4           brcc    .+14            ; 0x60e <checkLeft+0x90>
+ 600:  0c 2c           mov     r0, r12
+ 602:  02 c0           rjmp    .+4             ; 0x608 <checkLeft+0x8a>
+ 604:  22 0f           add     r18, r18
+ 606:  33 1f           adc     r19, r19
+ 608:  0a 94           dec     r0
+ 60a:  e2 f7           brpl    .-8             ; 0x604 <checkLeft+0x86>
+ 60c:  06 c0           rjmp    .+12            ; 0x61a <checkLeft+0x9c>
+ 60e:  0e 2c           mov     r0, r14
+ 610:  02 c0           rjmp    .+4             ; 0x616 <checkLeft+0x98>
+ 612:  35 95           asr     r19
+ 614:  27 95           ror     r18
+ 616:  0a 94           dec     r0
+ 618:  e2 f7           brpl    .-8             ; 0x612 <checkLeft+0x94>
+ 61a:  27 fd           sbrc    r18, 7
+ 61c:  1c c0           rjmp    .+56            ; 0x656 <checkLeft+0xd8>
+ 61e:  24 2f           mov     r18, r20
+ 620:  30 e0           ldi     r19, 0x00       ; 0
+ 622:  84 e0           ldi     r24, 0x04       ; 4
+ 624:  8b 15           cp      r24, r11
+ 626:  38 f0           brcs    .+14            ; 0x636 <checkLeft+0xb8>
+ 628:  00 2e           mov     r0, r16
+ 62a:  02 c0           rjmp    .+4             ; 0x630 <checkLeft+0xb2>
+ 62c:  22 0f           add     r18, r18
+ 62e:  33 1f           adc     r19, r19
+ 630:  0a 94           dec     r0
+ 632:  e2 f7           brpl    .-8             ; 0x62c <checkLeft+0xae>
+ 634:  06 c0           rjmp    .+12            ; 0x642 <checkLeft+0xc4>
+ 636:  0c 2e           mov     r0, r28
+ 638:  02 c0           rjmp    .+4             ; 0x63e <checkLeft+0xc0>
+ 63a:  35 95           asr     r19
+ 63c:  27 95           ror     r18
+ 63e:  0a 94           dec     r0
+ 640:  e2 f7           brpl    .-8             ; 0x63a <checkLeft+0xbc>
+ 642:  8c 91           ld      r24, X
+ 644:  28 23           and     r18, r24
+ 646:  39 f4           brne    .+14            ; 0x656 <checkLeft+0xd8>
+ 648:  31 96           adiw    r30, 0x01       ; 1
+ 64a:  11 96           adiw    r26, 0x01       ; 1
+ 64c:  a6 17           cp      r26, r22
+ 64e:  b7 07           cpc     r27, r23
+ 650:  91 f6           brne    .-92            ; 0x5f6 <checkLeft+0x78>
+ 652:  80 e0           ldi     r24, 0x00       ; 0
+ 654:  01 c0           rjmp    .+2             ; 0x658 <checkLeft+0xda>
+ 656:  81 e0           ldi     r24, 0x01       ; 1
+ 658:  df 91           pop     r29
+ 65a:  cf 91           pop     r28
+ 65c:  1f 91           pop     r17
+ 65e:  0f 91           pop     r16
+ 660:  ff 90           pop     r15
+ 662:  ef 90           pop     r14
+ 664:  df 90           pop     r13
+ 666:  cf 90           pop     r12
+ 668:  bf 90           pop     r11
+ 66a:  08 95           ret
+
+0000066c <checkRight>:
+ 66c:  bf 92           push    r11
+ 66e:  cf 92           push    r12
+ 670:  df 92           push    r13
+ 672:  ef 92           push    r14
+ 674:  ff 92           push    r15
+ 676:  0f 93           push    r16
+ 678:  1f 93           push    r17
+ 67a:  cf 93           push    r28
+ 67c:  df 93           push    r29
+ 67e:  50 91 85 01     lds     r21, 0x0185
+ 682:  85 2f           mov     r24, r21
+ 684:  90 e0           ldi     r25, 0x00       ; 0
+ 686:  24 e0           ldi     r18, 0x04       ; 4
+ 688:  30 e0           ldi     r19, 0x00       ; 0
+ 68a:  69 01           movw    r12, r18
+ 68c:  c8 1a           sub     r12, r24
+ 68e:  d9 0a           sbc     r13, r25
+ 690:  4c ef           ldi     r20, 0xFC       ; 252
+ 692:  e4 2e           mov     r14, r20
+ 694:  4f ef           ldi     r20, 0xFF       ; 255
+ 696:  f4 2e           mov     r15, r20
+ 698:  e8 0e           add     r14, r24
+ 69a:  f9 1e           adc     r15, r25
+ 69c:  b5 2e           mov     r11, r21
+ 69e:  b3 94           inc     r11
+ 6a0:  8b 2d           mov     r24, r11
+ 6a2:  90 e0           ldi     r25, 0x00       ; 0
+ 6a4:  89 01           movw    r16, r18
+ 6a6:  08 1b           sub     r16, r24
+ 6a8:  19 0b           sbc     r17, r25
+ 6aa:  ec 01           movw    r28, r24
+ 6ac:  24 97           sbiw    r28, 0x04       ; 4
+ 6ae:  80 91 8c 01     lds     r24, 0x018C
+ 6b2:  30 91 8b 01     lds     r19, 0x018B
+ 6b6:  20 91 84 01     lds     r18, 0x0184
+ 6ba:  e2 2f           mov     r30, r18
+ 6bc:  f0 e0           ldi     r31, 0x00       ; 0
+ 6be:  ee 0f           add     r30, r30
+ 6c0:  ff 1f           adc     r31, r31
+ 6c2:  ee 0f           add     r30, r30
+ 6c4:  ff 1f           adc     r31, r31
+ 6c6:  e3 0f           add     r30, r19
+ 6c8:  f1 1d           adc     r31, r1
+ 6ca:  ee 0f           add     r30, r30
+ 6cc:  ff 1f           adc     r31, r31
+ 6ce:  ee 0f           add     r30, r30
+ 6d0:  ff 1f           adc     r31, r31
+ 6d2:  ec 5c           subi    r30, 0xCC       ; 204
+ 6d4:  fe 4f           sbci    r31, 0xFE       ; 254
+ 6d6:  90 e0           ldi     r25, 0x00       ; 0
+ 6d8:  dc 01           movw    r26, r24
+ 6da:  ae 56           subi    r26, 0x6E       ; 110
+ 6dc:  be 4f           sbci    r27, 0xFE       ; 254
+ 6de:  bc 01           movw    r22, r24
+ 6e0:  6a 56           subi    r22, 0x6A       ; 106
+ 6e2:  7e 4f           sbci    r23, 0xFE       ; 254
+ 6e4:  40 81           ld      r20, Z
+ 6e6:  24 2f           mov     r18, r20
+ 6e8:  30 e0           ldi     r19, 0x00       ; 0
+ 6ea:  55 30           cpi     r21, 0x05       ; 5
+ 6ec:  38 f4           brcc    .+14            ; 0x6fc <checkRight+0x90>
+ 6ee:  0c 2c           mov     r0, r12
+ 6f0:  02 c0           rjmp    .+4             ; 0x6f6 <checkRight+0x8a>
+ 6f2:  22 0f           add     r18, r18
+ 6f4:  33 1f           adc     r19, r19
+ 6f6:  0a 94           dec     r0
+ 6f8:  e2 f7           brpl    .-8             ; 0x6f2 <checkRight+0x86>
+ 6fa:  06 c0           rjmp    .+12            ; 0x708 <checkRight+0x9c>
+ 6fc:  0e 2c           mov     r0, r14
+ 6fe:  02 c0           rjmp    .+4             ; 0x704 <checkRight+0x98>
+ 700:  35 95           asr     r19
+ 702:  27 95           ror     r18
+ 704:  0a 94           dec     r0
+ 706:  e2 f7           brpl    .-8             ; 0x700 <checkRight+0x94>
+ 708:  20 fd           sbrc    r18, 0
+ 70a:  1c c0           rjmp    .+56            ; 0x744 <checkRight+0xd8>
+ 70c:  24 2f           mov     r18, r20
+ 70e:  30 e0           ldi     r19, 0x00       ; 0
+ 710:  84 e0           ldi     r24, 0x04       ; 4
+ 712:  8b 15           cp      r24, r11
+ 714:  38 f0           brcs    .+14            ; 0x724 <checkRight+0xb8>
+ 716:  00 2e           mov     r0, r16
+ 718:  02 c0           rjmp    .+4             ; 0x71e <checkRight+0xb2>
+ 71a:  22 0f           add     r18, r18
+ 71c:  33 1f           adc     r19, r19
+ 71e:  0a 94           dec     r0
+ 720:  e2 f7           brpl    .-8             ; 0x71a <checkRight+0xae>
+ 722:  06 c0           rjmp    .+12            ; 0x730 <checkRight+0xc4>
+ 724:  0c 2e           mov     r0, r28
+ 726:  02 c0           rjmp    .+4             ; 0x72c <checkRight+0xc0>
+ 728:  35 95           asr     r19
+ 72a:  27 95           ror     r18
+ 72c:  0a 94           dec     r0
+ 72e:  e2 f7           brpl    .-8             ; 0x728 <checkRight+0xbc>
+ 730:  8c 91           ld      r24, X
+ 732:  28 23           and     r18, r24
+ 734:  39 f4           brne    .+14            ; 0x744 <checkRight+0xd8>
+ 736:  31 96           adiw    r30, 0x01       ; 1
+ 738:  11 96           adiw    r26, 0x01       ; 1
+ 73a:  a6 17           cp      r26, r22
+ 73c:  b7 07           cpc     r27, r23
+ 73e:  91 f6           brne    .-92            ; 0x6e4 <checkRight+0x78>
+ 740:  80 e0           ldi     r24, 0x00       ; 0
+ 742:  01 c0           rjmp    .+2             ; 0x746 <checkRight+0xda>
+ 744:  81 e0           ldi     r24, 0x01       ; 1
+ 746:  df 91           pop     r29
+ 748:  cf 91           pop     r28
+ 74a:  1f 91           pop     r17
+ 74c:  0f 91           pop     r16
+ 74e:  ff 90           pop     r15
+ 750:  ef 90           pop     r14
+ 752:  df 90           pop     r13
+ 754:  cf 90           pop     r12
+ 756:  bf 90           pop     r11
+ 758:  08 95           ret
+
+0000075a <checkTurn>:
+ 75a:  0f 93           push    r16
+ 75c:  1f 93           push    r17
+ 75e:  cf 93           push    r28
+ 760:  df 93           push    r29
+ 762:  80 91 8b 01     lds     r24, 0x018B
+ 766:  83 30           cpi     r24, 0x03       ; 3
+ 768:  10 f0           brcs    .+4             ; 0x76e <checkTurn+0x14>
+ 76a:  20 e0           ldi     r18, 0x00       ; 0
+ 76c:  02 c0           rjmp    .+4             ; 0x772 <checkTurn+0x18>
+ 76e:  28 2f           mov     r18, r24
+ 770:  2f 5f           subi    r18, 0xFF       ; 255
+ 772:  50 91 84 01     lds     r21, 0x0184
+ 776:  40 91 85 01     lds     r20, 0x0185
+ 77a:  84 2f           mov     r24, r20
+ 77c:  90 e0           ldi     r25, 0x00       ; 0
+ 77e:  64 e0           ldi     r22, 0x04       ; 4
+ 780:  70 e0           ldi     r23, 0x00       ; 0
+ 782:  68 1b           sub     r22, r24
+ 784:  79 0b           sbc     r23, r25
+ 786:  8c 01           movw    r16, r24
+ 788:  04 50           subi    r16, 0x04       ; 4
+ 78a:  10 40           sbci    r17, 0x00       ; 0
+ 78c:  80 91 8c 01     lds     r24, 0x018C
+ 790:  e5 2f           mov     r30, r21
+ 792:  f0 e0           ldi     r31, 0x00       ; 0
+ 794:  ee 0f           add     r30, r30
+ 796:  ff 1f           adc     r31, r31
+ 798:  ee 0f           add     r30, r30
+ 79a:  ff 1f           adc     r31, r31
+ 79c:  e2 0f           add     r30, r18
+ 79e:  f1 1d           adc     r31, r1
+ 7a0:  ee 0f           add     r30, r30
+ 7a2:  ff 1f           adc     r31, r31
+ 7a4:  ee 0f           add     r30, r30
+ 7a6:  ff 1f           adc     r31, r31
+ 7a8:  ec 5c           subi    r30, 0xCC       ; 204
+ 7aa:  fe 4f           sbci    r31, 0xFE       ; 254
+ 7ac:  90 e0           ldi     r25, 0x00       ; 0
+ 7ae:  dc 01           movw    r26, r24
+ 7b0:  ae 56           subi    r26, 0x6E       ; 110
+ 7b2:  be 4f           sbci    r27, 0xFE       ; 254
+ 7b4:  ec 01           movw    r28, r24
+ 7b6:  ca 56           subi    r28, 0x6A       ; 106
+ 7b8:  de 4f           sbci    r29, 0xFE       ; 254
+ 7ba:  80 81           ld      r24, Z
+ 7bc:  28 2f           mov     r18, r24
+ 7be:  30 e0           ldi     r19, 0x00       ; 0
+ 7c0:  45 30           cpi     r20, 0x05       ; 5
+ 7c2:  38 f4           brcc    .+14            ; 0x7d2 <checkTurn+0x78>
+ 7c4:  06 2e           mov     r0, r22
+ 7c6:  02 c0           rjmp    .+4             ; 0x7cc <checkTurn+0x72>
+ 7c8:  22 0f           add     r18, r18
+ 7ca:  33 1f           adc     r19, r19
+ 7cc:  0a 94           dec     r0
+ 7ce:  e2 f7           brpl    .-8             ; 0x7c8 <checkTurn+0x6e>
+ 7d0:  06 c0           rjmp    .+12            ; 0x7de <checkTurn+0x84>
+ 7d2:  00 2e           mov     r0, r16
+ 7d4:  02 c0           rjmp    .+4             ; 0x7da <checkTurn+0x80>
+ 7d6:  35 95           asr     r19
+ 7d8:  27 95           ror     r18
+ 7da:  0a 94           dec     r0
+ 7dc:  e2 f7           brpl    .-8             ; 0x7d6 <checkTurn+0x7c>
+ 7de:  51 30           cpi     r21, 0x01       ; 1
+ 7e0:  31 f0           breq    .+12            ; 0x7ee <checkTurn+0x94>
+ 7e2:  52 30           cpi     r21, 0x02       ; 2
+ 7e4:  11 f0           breq    .+4             ; 0x7ea <checkTurn+0x90>
+ 7e6:  53 30           cpi     r21, 0x03       ; 3
+ 7e8:  29 f4           brne    .+10            ; 0x7f4 <checkTurn+0x9a>
+ 7ea:  41 30           cpi     r20, 0x01       ; 1
+ 7ec:  99 f0           breq    .+38            ; 0x814 <checkTurn+0xba>
+ 7ee:  48 30           cpi     r20, 0x08       ; 8
+ 7f0:  39 f4           brne    .+14            ; 0x800 <checkTurn+0xa6>
+ 7f2:  10 c0           rjmp    .+32            ; 0x814 <checkTurn+0xba>
+ 7f4:  54 30           cpi     r21, 0x04       ; 4
+ 7f6:  21 f4           brne    .+8             ; 0x800 <checkTurn+0xa6>
+ 7f8:  42 30           cpi     r20, 0x02       ; 2
+ 7fa:  61 f0           breq    .+24            ; 0x814 <checkTurn+0xba>
+ 7fc:  47 30           cpi     r20, 0x07       ; 7
+ 7fe:  51 f0           breq    .+20            ; 0x814 <checkTurn+0xba>
+ 800:  8c 91           ld      r24, X
+ 802:  28 23           and     r18, r24
+ 804:  39 f4           brne    .+14            ; 0x814 <checkTurn+0xba>
+ 806:  31 96           adiw    r30, 0x01       ; 1
+ 808:  11 96           adiw    r26, 0x01       ; 1
+ 80a:  ac 17           cp      r26, r28
+ 80c:  bd 07           cpc     r27, r29
+ 80e:  a9 f6           brne    .-86            ; 0x7ba <checkTurn+0x60>
+ 810:  80 e0           ldi     r24, 0x00       ; 0
+ 812:  01 c0           rjmp    .+2             ; 0x816 <checkTurn+0xbc>
+ 814:  81 e0           ldi     r24, 0x01       ; 1
+ 816:  df 91           pop     r29
+ 818:  cf 91           pop     r28
+ 81a:  1f 91           pop     r17
+ 81c:  0f 91           pop     r16
+ 81e:  08 95           ret
+
+00000820 <checkFullLine>:
+ 820:  cf 92           push    r12
+ 822:  df 92           push    r13
+ 824:  ef 92           push    r14
+ 826:  ff 92           push    r15
+ 828:  0f 93           push    r16
+ 82a:  1f 93           push    r17
+ 82c:  df 93           push    r29
+ 82e:  cf 93           push    r28
+ 830:  00 d0           rcall   .+0             ; 0x832 <checkFullLine+0x12>
+ 832:  cd b7           in      r28, 0x3d       ; 61
+ 834:  de b7           in      r29, 0x3e       ; 62
+ 836:  80 91 8c 01     lds     r24, 0x018C
+ 83a:  b7 e0           ldi     r27, 0x07       ; 7
+ 83c:  eb 2e           mov     r14, r27
+ 83e:  e8 22           and     r14, r24
+ 840:  e3 94           inc     r14
+ 842:  00 e0           ldi     r16, 0x00       ; 0
+ 844:  10 e0           ldi     r17, 0x00       ; 0
+ 846:  86 95           lsr     r24
+ 848:  86 95           lsr     r24
+ 84a:  86 95           lsr     r24
+ 84c:  c8 2e           mov     r12, r24
+ 84e:  c3 94           inc     r12
+ 850:  d0 2e           mov     r13, r16
+ 852:  80 91 8c 01     lds     r24, 0x018C
+ 856:  f8 01           movw    r30, r16
+ 858:  e8 0f           add     r30, r24
+ 85a:  f1 1d           adc     r31, r1
+ 85c:  e8 30           cpi     r30, 0x08       ; 8
+ 85e:  f1 05           cpc     r31, r1
+ 860:  0c f0           brlt    .+2             ; 0x864 <checkFullLine+0x44>
+ 862:  6b c0           rjmp    .+214           ; 0x93a <checkFullLine+0x11a>
+ 864:  ee 56           subi    r30, 0x6E       ; 110
+ 866:  fe 4f           sbci    r31, 0xFE       ; 254
+ 868:  80 81           ld      r24, Z
+ 86a:  8f 3f           cpi     r24, 0xFF       ; 255
+ 86c:  09 f0           breq    .+2             ; 0x870 <checkFullLine+0x50>
+ 86e:  65 c0           rjmp    .+202           ; 0x93a <checkFullLine+0x11a>
+ 870:  ff 24           eor     r15, r15
+ 872:  8c 2d           mov     r24, r12
+ 874:  6e 2d           mov     r22, r14
+ 876:  40 e0           ldi     r20, 0x00       ; 0
+ 878:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ 87c:  28 ee           ldi     r18, 0xE8       ; 232
+ 87e:  33 e0           ldi     r19, 0x03       ; 3
+ 880:  1a 82           std     Y+2, r1 ; 0x02
+ 882:  19 82           std     Y+1, r1 ; 0x01
+ 884:  05 c0           rjmp    .+10            ; 0x890 <checkFullLine+0x70>
+ 886:  89 81           ldd     r24, Y+1        ; 0x01
+ 888:  9a 81           ldd     r25, Y+2        ; 0x02
+ 88a:  01 96           adiw    r24, 0x01       ; 1
+ 88c:  9a 83           std     Y+2, r25        ; 0x02
+ 88e:  89 83           std     Y+1, r24        ; 0x01
+ 890:  89 81           ldd     r24, Y+1        ; 0x01
+ 892:  9a 81           ldd     r25, Y+2        ; 0x02
+ 894:  8b 35           cpi     r24, 0x5B       ; 91
+ 896:  91 05           cpc     r25, r1
+ 898:  b1 f7           brne    .-20            ; 0x886 <checkFullLine+0x66>
+ 89a:  21 50           subi    r18, 0x01       ; 1
+ 89c:  30 40           sbci    r19, 0x00       ; 0
+ 89e:  81 f7           brne    .-32            ; 0x880 <checkFullLine+0x60>
+ 8a0:  8c 2d           mov     r24, r12
+ 8a2:  6e 2d           mov     r22, r14
+ 8a4:  4f ef           ldi     r20, 0xFF       ; 255
+ 8a6:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ 8aa:  28 ee           ldi     r18, 0xE8       ; 232
+ 8ac:  33 e0           ldi     r19, 0x03       ; 3
+ 8ae:  1a 82           std     Y+2, r1 ; 0x02
+ 8b0:  19 82           std     Y+1, r1 ; 0x01
+ 8b2:  05 c0           rjmp    .+10            ; 0x8be <checkFullLine+0x9e>
+ 8b4:  89 81           ldd     r24, Y+1        ; 0x01
+ 8b6:  9a 81           ldd     r25, Y+2        ; 0x02
+ 8b8:  01 96           adiw    r24, 0x01       ; 1
+ 8ba:  9a 83           std     Y+2, r25        ; 0x02
+ 8bc:  89 83           std     Y+1, r24        ; 0x01
+ 8be:  89 81           ldd     r24, Y+1        ; 0x01
+ 8c0:  9a 81           ldd     r25, Y+2        ; 0x02
+ 8c2:  8b 35           cpi     r24, 0x5B       ; 91
+ 8c4:  91 05           cpc     r25, r1
+ 8c6:  b1 f7           brne    .-20            ; 0x8b4 <checkFullLine+0x94>
+ 8c8:  21 50           subi    r18, 0x01       ; 1
+ 8ca:  30 40           sbci    r19, 0x00       ; 0
+ 8cc:  81 f7           brne    .-32            ; 0x8ae <checkFullLine+0x8e>
+ 8ce:  f3 94           inc     r15
+ 8d0:  83 e0           ldi     r24, 0x03       ; 3
+ 8d2:  f8 16           cp      r15, r24
+ 8d4:  71 f6           brne    .-100           ; 0x872 <checkFullLine+0x52>
+ 8d6:  90 91 8c 01     lds     r25, 0x018C
+ 8da:  9d 0d           add     r25, r13
+ 8dc:  08 c0           rjmp    .+16            ; 0x8ee <checkFullLine+0xce>
+ 8de:  e9 2f           mov     r30, r25
+ 8e0:  f0 e0           ldi     r31, 0x00       ; 0
+ 8e2:  ee 56           subi    r30, 0x6E       ; 110
+ 8e4:  fe 4f           sbci    r31, 0xFE       ; 254
+ 8e6:  82 91           ld      r24, -Z
+ 8e8:  31 96           adiw    r30, 0x01       ; 1
+ 8ea:  80 83           st      Z, r24
+ 8ec:  91 50           subi    r25, 0x01       ; 1
+ 8ee:  99 23           and     r25, r25
+ 8f0:  b1 f7           brne    .-20            ; 0x8de <checkFullLine+0xbe>
+ 8f2:  0e 94 39 01     call    0x272   ; 0x272 <bleepBleepSound>
+ 8f6:  e0 e0           ldi     r30, 0x00       ; 0
+ 8f8:  f1 e0           ldi     r31, 0x01       ; 1
+ 8fa:  07 c0           rjmp    .+14            ; 0x90a <checkFullLine+0xea>
+ 8fc:  80 91 c0 00     lds     r24, 0x00C0
+ 900:  85 ff           sbrs    r24, 5
+ 902:  fc cf           rjmp    .-8             ; 0x8fc <checkFullLine+0xdc>
+ 904:  90 93 c6 00     sts     0x00C6, r25
+ 908:  31 96           adiw    r30, 0x01       ; 1
+ 90a:  90 81           ld      r25, Z
+ 90c:  99 23           and     r25, r25
+ 90e:  b1 f7           brne    .-20            ; 0x8fc <checkFullLine+0xdc>
+ 910:  80 91 86 01     lds     r24, 0x0186
+ 914:  8f 5f           subi    r24, 0xFF       ; 255
+ 916:  80 93 86 01     sts     0x0186, r24
+ 91a:  81 50           subi    r24, 0x01       ; 1
+ 91c:  0e 94 9c 00     call    0x138   ; 0x138 <transmit_4digit_USART0>
+ 920:  e8 e0           ldi     r30, 0x08       ; 8
+ 922:  f1 e0           ldi     r31, 0x01       ; 1
+ 924:  07 c0           rjmp    .+14            ; 0x934 <checkFullLine+0x114>
+ 926:  80 91 c0 00     lds     r24, 0x00C0
+ 92a:  85 ff           sbrs    r24, 5
+ 92c:  fc cf           rjmp    .-8             ; 0x926 <checkFullLine+0x106>
+ 92e:  90 93 c6 00     sts     0x00C6, r25
+ 932:  31 96           adiw    r30, 0x01       ; 1
+ 934:  90 81           ld      r25, Z
+ 936:  99 23           and     r25, r25
+ 938:  b1 f7           brne    .-20            ; 0x926 <checkFullLine+0x106>
+ 93a:  0f 5f           subi    r16, 0xFF       ; 255
+ 93c:  1f 4f           sbci    r17, 0xFF       ; 255
+ 93e:  e3 94           inc     r14
+ 940:  04 30           cpi     r16, 0x04       ; 4
+ 942:  11 05           cpc     r17, r1
+ 944:  09 f0           breq    .+2             ; 0x948 <checkFullLine+0x128>
+ 946:  84 cf           rjmp    .-248           ; 0x850 <checkFullLine+0x30>
+ 948:  0f 90           pop     r0
+ 94a:  0f 90           pop     r0
+ 94c:  cf 91           pop     r28
+ 94e:  df 91           pop     r29
+ 950:  1f 91           pop     r17
+ 952:  0f 91           pop     r16
+ 954:  ff 90           pop     r15
+ 956:  ef 90           pop     r14
+ 958:  df 90           pop     r13
+ 95a:  cf 90           pop     r12
+ 95c:  08 95           ret
+
+0000095e <gameOver>:
+ 95e:  af 92           push    r10
+ 960:  bf 92           push    r11
+ 962:  cf 92           push    r12
+ 964:  df 92           push    r13
+ 966:  ff 92           push    r15
+ 968:  0f 93           push    r16
+ 96a:  1f 93           push    r17
+ 96c:  df 93           push    r29
+ 96e:  cf 93           push    r28
+ 970:  00 d0           rcall   .+0             ; 0x972 <gameOver+0x14>
+ 972:  00 d0           rcall   .+0             ; 0x974 <gameOver+0x16>
+ 974:  0f 92           push    r0
+ 976:  cd b7           in      r28, 0x3d       ; 61
+ 978:  de b7           in      r29, 0x3e       ; 62
+ 97a:  de 01           movw    r26, r28
+ 97c:  13 96           adiw    r26, 0x03       ; 3
+ 97e:  e7 e8           ldi     r30, 0x87       ; 135
+ 980:  f1 e0           ldi     r31, 0x01       ; 1
+ 982:  83 e0           ldi     r24, 0x03       ; 3
+ 984:  01 90           ld      r0, Z+
+ 986:  0d 92           st      X+, r0
+ 988:  81 50           subi    r24, 0x01       ; 1
+ 98a:  e1 f7           brne    .-8             ; 0x984 <gameOver+0x26>
+ 98c:  10 e0           ldi     r17, 0x00       ; 0
+ 98e:  1f 5f           subi    r17, 0xFF       ; 255
+ 990:  81 e0           ldi     r24, 0x01       ; 1
+ 992:  61 2f           mov     r22, r17
+ 994:  4f ef           ldi     r20, 0xFF       ; 255
+ 996:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ 99a:  24 ef           ldi     r18, 0xF4       ; 244
+ 99c:  31 e0           ldi     r19, 0x01       ; 1
+ 99e:  1a 82           std     Y+2, r1 ; 0x02
+ 9a0:  19 82           std     Y+1, r1 ; 0x01
+ 9a2:  05 c0           rjmp    .+10            ; 0x9ae <gameOver+0x50>
+ 9a4:  89 81           ldd     r24, Y+1        ; 0x01
+ 9a6:  9a 81           ldd     r25, Y+2        ; 0x02
+ 9a8:  01 96           adiw    r24, 0x01       ; 1
+ 9aa:  9a 83           std     Y+2, r25        ; 0x02
+ 9ac:  89 83           std     Y+1, r24        ; 0x01
+ 9ae:  89 81           ldd     r24, Y+1        ; 0x01
+ 9b0:  9a 81           ldd     r25, Y+2        ; 0x02
+ 9b2:  8b 35           cpi     r24, 0x5B       ; 91
+ 9b4:  91 05           cpc     r25, r1
+ 9b6:  b1 f7           brne    .-20            ; 0x9a4 <gameOver+0x46>
+ 9b8:  21 50           subi    r18, 0x01       ; 1
+ 9ba:  30 40           sbci    r19, 0x00       ; 0
+ 9bc:  81 f7           brne    .-32            ; 0x99e <gameOver+0x40>
+ 9be:  18 30           cpi     r17, 0x08       ; 8
+ 9c0:  31 f7           brne    .-52            ; 0x98e <gameOver+0x30>
+ 9c2:  02 e9           ldi     r16, 0x92       ; 146
+ 9c4:  11 e0           ldi     r17, 0x01       ; 1
+ 9c6:  ff 24           eor     r15, r15
+ 9c8:  f3 94           inc     r15
+ 9ca:  81 e0           ldi     r24, 0x01       ; 1
+ 9cc:  6f 2d           mov     r22, r15
+ 9ce:  40 e0           ldi     r20, 0x00       ; 0
+ 9d0:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ 9d4:  f8 01           movw    r30, r16
+ 9d6:  10 82           st      Z, r1
+ 9d8:  24 ef           ldi     r18, 0xF4       ; 244
+ 9da:  31 e0           ldi     r19, 0x01       ; 1
+ 9dc:  1a 82           std     Y+2, r1 ; 0x02
+ 9de:  19 82           std     Y+1, r1 ; 0x01
+ 9e0:  05 c0           rjmp    .+10            ; 0x9ec <gameOver+0x8e>
+ 9e2:  89 81           ldd     r24, Y+1        ; 0x01
+ 9e4:  9a 81           ldd     r25, Y+2        ; 0x02
+ 9e6:  01 96           adiw    r24, 0x01       ; 1
+ 9e8:  9a 83           std     Y+2, r25        ; 0x02
+ 9ea:  89 83           std     Y+1, r24        ; 0x01
+ 9ec:  89 81           ldd     r24, Y+1        ; 0x01
+ 9ee:  9a 81           ldd     r25, Y+2        ; 0x02
+ 9f0:  8b 35           cpi     r24, 0x5B       ; 91
+ 9f2:  91 05           cpc     r25, r1
+ 9f4:  b1 f7           brne    .-20            ; 0x9e2 <gameOver+0x84>
+ 9f6:  21 50           subi    r18, 0x01       ; 1
+ 9f8:  30 40           sbci    r19, 0x00       ; 0
+ 9fa:  81 f7           brne    .-32            ; 0x9dc <gameOver+0x7e>
+ 9fc:  0f 5f           subi    r16, 0xFF       ; 255
+ 9fe:  1f 4f           sbci    r17, 0xFF       ; 255
+ a00:  f8 e0           ldi     r31, 0x08       ; 8
+ a02:  ff 16           cp      r15, r31
+ a04:  09 f7           brne    .-62            ; 0x9c8 <gameOver+0x6a>
+ a06:  ff 24           eor     r15, r15
+ a08:  13 e0           ldi     r17, 0x03       ; 3
+ a0a:  a1 2e           mov     r10, r17
+ a0c:  b1 2c           mov     r11, r1
+ a0e:  ac 0e           add     r10, r28
+ a10:  bd 1e           adc     r11, r29
+ a12:  32 c0           rjmp    .+100           ; 0xa78 <gameOver+0x11a>
+ a14:  00 e0           ldi     r16, 0x00       ; 0
+ a16:  10 e0           ldi     r17, 0x00       ; 0
+ a18:  cf 2c           mov     r12, r15
+ a1a:  dd 24           eor     r13, r13
+ a1c:  20 2f           mov     r18, r16
+ a1e:  2f 5f           subi    r18, 0xFF       ; 255
+ a20:  c8 01           movw    r24, r16
+ a22:  8c 0d           add     r24, r12
+ a24:  9d 1d           adc     r25, r13
+ a26:  63 e0           ldi     r22, 0x03       ; 3
+ a28:  70 e0           ldi     r23, 0x00       ; 0
+ a2a:  0e 94 d2 06     call    0xda4   ; 0xda4 <__divmodhi4>
+ a2e:  f5 01           movw    r30, r10
+ a30:  e8 0f           add     r30, r24
+ a32:  f9 1f           adc     r31, r25
+ a34:  81 e0           ldi     r24, 0x01       ; 1
+ a36:  62 2f           mov     r22, r18
+ a38:  40 81           ld      r20, Z
+ a3a:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ a3e:  0f 5f           subi    r16, 0xFF       ; 255
+ a40:  1f 4f           sbci    r17, 0xFF       ; 255
+ a42:  08 30           cpi     r16, 0x08       ; 8
+ a44:  11 05           cpc     r17, r1
+ a46:  51 f7           brne    .-44            ; 0xa1c <gameOver+0xbe>
+ a48:  81 e0           ldi     r24, 0x01       ; 1
+ a4a:  8f 15           cp      r24, r15
+ a4c:  10 f4           brcc    .+4             ; 0xa52 <gameOver+0xf4>
+ a4e:  ff 24           eor     r15, r15
+ a50:  01 c0           rjmp    .+2             ; 0xa54 <gameOver+0xf6>
+ a52:  f3 94           inc     r15
+ a54:  28 ee           ldi     r18, 0xE8       ; 232
+ a56:  33 e0           ldi     r19, 0x03       ; 3
+ a58:  1a 82           std     Y+2, r1 ; 0x02
+ a5a:  19 82           std     Y+1, r1 ; 0x01
+ a5c:  05 c0           rjmp    .+10            ; 0xa68 <gameOver+0x10a>
+ a5e:  89 81           ldd     r24, Y+1        ; 0x01
+ a60:  9a 81           ldd     r25, Y+2        ; 0x02
+ a62:  01 96           adiw    r24, 0x01       ; 1
+ a64:  9a 83           std     Y+2, r25        ; 0x02
+ a66:  89 83           std     Y+1, r24        ; 0x01
+ a68:  89 81           ldd     r24, Y+1        ; 0x01
+ a6a:  9a 81           ldd     r25, Y+2        ; 0x02
+ a6c:  8b 35           cpi     r24, 0x5B       ; 91
+ a6e:  91 05           cpc     r25, r1
+ a70:  b1 f7           brne    .-20            ; 0xa5e <gameOver+0x100>
+ a72:  21 50           subi    r18, 0x01       ; 1
+ a74:  30 40           sbci    r19, 0x00       ; 0
+ a76:  81 f7           brne    .-32            ; 0xa58 <gameOver+0xfa>
+ a78:  80 91 9d 01     lds     r24, 0x019D
+ a7c:  88 23           and     r24, r24
+ a7e:  51 f2           breq    .-108           ; 0xa14 <gameOver+0xb6>
+ a80:  81 e0           ldi     r24, 0x01       ; 1
+ a82:  80 93 86 01     sts     0x0186, r24
+ a86:  e2 e1           ldi     r30, 0x12       ; 18
+ a88:  f1 e0           ldi     r31, 0x01       ; 1
+ a8a:  07 c0           rjmp    .+14            ; 0xa9a <gameOver+0x13c>
+ a8c:  80 91 c0 00     lds     r24, 0x00C0
+ a90:  85 ff           sbrs    r24, 5
+ a92:  fc cf           rjmp    .-8             ; 0xa8c <gameOver+0x12e>
+ a94:  90 93 c6 00     sts     0x00C6, r25
+ a98:  31 96           adiw    r30, 0x01       ; 1
+ a9a:  90 81           ld      r25, Z
+ a9c:  99 23           and     r25, r25
+ a9e:  b1 f7           brne    .-20            ; 0xa8c <gameOver+0x12e>
+ aa0:  80 91 8d 01     lds     r24, 0x018D
+ aa4:  90 91 8e 01     lds     r25, 0x018E
+ aa8:  65 e0           ldi     r22, 0x05       ; 5
+ aaa:  70 e0           ldi     r23, 0x00       ; 0
+ aac:  0e 94 be 06     call    0xd7c   ; 0xd7c <__udivmodhi4>
+ ab0:  80 93 84 01     sts     0x0184, r24
+ ab4:  10 92 8b 01     sts     0x018B, r1
+ ab8:  0f 90           pop     r0
+ aba:  0f 90           pop     r0
+ abc:  0f 90           pop     r0
+ abe:  0f 90           pop     r0
+ ac0:  0f 90           pop     r0
+ ac2:  cf 91           pop     r28
+ ac4:  df 91           pop     r29
+ ac6:  1f 91           pop     r17
+ ac8:  0f 91           pop     r16
+ aca:  ff 90           pop     r15
+ acc:  df 90           pop     r13
+ ace:  cf 90           pop     r12
+ ad0:  bf 90           pop     r11
+ ad2:  af 90           pop     r10
+ ad4:  08 95           ret
+
+00000ad6 <stopFigure>:
+ ad6:  1f 93           push    r17
+ ad8:  cf 93           push    r28
+ ada:  df 93           push    r29
+ adc:  10 91 85 01     lds     r17, 0x0185
+ ae0:  81 2f           mov     r24, r17
+ ae2:  90 e0           ldi     r25, 0x00       ; 0
+ ae4:  44 e0           ldi     r20, 0x04       ; 4
+ ae6:  50 e0           ldi     r21, 0x00       ; 0
+ ae8:  48 1b           sub     r20, r24
+ aea:  59 0b           sbc     r21, r25
+ aec:  ec 01           movw    r28, r24
+ aee:  24 97           sbiw    r28, 0x04       ; 4
+ af0:  80 91 8c 01     lds     r24, 0x018C
+ af4:  30 91 8b 01     lds     r19, 0x018B
+ af8:  20 91 84 01     lds     r18, 0x0184
+ afc:  e2 2f           mov     r30, r18
+ afe:  f0 e0           ldi     r31, 0x00       ; 0
+ b00:  ee 0f           add     r30, r30
+ b02:  ff 1f           adc     r31, r31
+ b04:  ee 0f           add     r30, r30
+ b06:  ff 1f           adc     r31, r31
+ b08:  e3 0f           add     r30, r19
+ b0a:  f1 1d           adc     r31, r1
+ b0c:  ee 0f           add     r30, r30
+ b0e:  ff 1f           adc     r31, r31
+ b10:  ee 0f           add     r30, r30
+ b12:  ff 1f           adc     r31, r31
+ b14:  ec 5c           subi    r30, 0xCC       ; 204
+ b16:  fe 4f           sbci    r31, 0xFE       ; 254
+ b18:  90 e0           ldi     r25, 0x00       ; 0
+ b1a:  dc 01           movw    r26, r24
+ b1c:  ae 56           subi    r26, 0x6E       ; 110
+ b1e:  be 4f           sbci    r27, 0xFE       ; 254
+ b20:  bc 01           movw    r22, r24
+ b22:  6a 56           subi    r22, 0x6A       ; 106
+ b24:  7e 4f           sbci    r23, 0xFE       ; 254
+ b26:  80 81           ld      r24, Z
+ b28:  28 2f           mov     r18, r24
+ b2a:  30 e0           ldi     r19, 0x00       ; 0
+ b2c:  15 30           cpi     r17, 0x05       ; 5
+ b2e:  38 f4           brcc    .+14            ; 0xb3e <stopFigure+0x68>
+ b30:  04 2e           mov     r0, r20
+ b32:  02 c0           rjmp    .+4             ; 0xb38 <stopFigure+0x62>
+ b34:  22 0f           add     r18, r18
+ b36:  33 1f           adc     r19, r19
+ b38:  0a 94           dec     r0
+ b3a:  e2 f7           brpl    .-8             ; 0xb34 <stopFigure+0x5e>
+ b3c:  06 c0           rjmp    .+12            ; 0xb4a <stopFigure+0x74>
+ b3e:  0c 2e           mov     r0, r28
+ b40:  02 c0           rjmp    .+4             ; 0xb46 <stopFigure+0x70>
+ b42:  35 95           asr     r19
+ b44:  27 95           ror     r18
+ b46:  0a 94           dec     r0
+ b48:  e2 f7           brpl    .-8             ; 0xb42 <stopFigure+0x6c>
+ b4a:  8c 91           ld      r24, X
+ b4c:  82 2b           or      r24, r18
+ b4e:  8d 93           st      X+, r24
+ b50:  31 96           adiw    r30, 0x01       ; 1
+ b52:  a6 17           cp      r26, r22
+ b54:  b7 07           cpc     r27, r23
+ b56:  39 f7           brne    .-50            ; 0xb26 <stopFigure+0x50>
+ b58:  0e 94 10 04     call    0x820   ; 0x820 <checkFullLine>
+ b5c:  10 92 8c 01     sts     0x018C, r1
+ b60:  10 92 8b 01     sts     0x018B, r1
+ b64:  84 e0           ldi     r24, 0x04       ; 4
+ b66:  80 93 85 01     sts     0x0185, r24
+ b6a:  80 91 91 01     lds     r24, 0x0191
+ b6e:  80 93 84 01     sts     0x0184, r24
+ b72:  0e 94 76 02     call    0x4ec   ; 0x4ec <checkStart>
+ b76:  81 30           cpi     r24, 0x01       ; 1
+ b78:  19 f0           breq    .+6             ; 0xb80 <stopFigure+0xaa>
+ b7a:  0e 94 d3 01     call    0x3a6   ; 0x3a6 <redrawScreen>
+ b7e:  02 c0           rjmp    .+4             ; 0xb84 <stopFigure+0xae>
+ b80:  0e 94 af 04     call    0x95e   ; 0x95e <gameOver>
+ b84:  df 91           pop     r29
+ b86:  cf 91           pop     r28
+ b88:  1f 91           pop     r17
+ b8a:  08 95           ret
+
+00000b8c <main>:
+ b8c:  1f 93           push    r17
+ b8e:  23 9a           sbi     0x04, 3 ; 4
+ b90:  25 9a           sbi     0x04, 5 ; 4
+ b92:  24 9a           sbi     0x04, 4 ; 4
+ b94:  22 9a           sbi     0x04, 2 ; 4
+ b96:  81 e0           ldi     r24, 0x01       ; 1
+ b98:  60 91 31 01     lds     r22, 0x0131
+ b9c:  47 e0           ldi     r20, 0x07       ; 7
+ b9e:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ ba2:  81 e0           ldi     r24, 0x01       ; 1
+ ba4:  60 91 2f 01     lds     r22, 0x012F
+ ba8:  40 e0           ldi     r20, 0x00       ; 0
+ baa:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ bae:  81 e0           ldi     r24, 0x01       ; 1
+ bb0:  60 91 32 01     lds     r22, 0x0132
+ bb4:  41 e0           ldi     r20, 0x01       ; 1
+ bb6:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ bba:  81 e0           ldi     r24, 0x01       ; 1
+ bbc:  60 91 33 01     lds     r22, 0x0133
+ bc0:  40 e0           ldi     r20, 0x00       ; 0
+ bc2:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ bc6:  10 e0           ldi     r17, 0x00       ; 0
+ bc8:  1f 5f           subi    r17, 0xFF       ; 255
+ bca:  81 e0           ldi     r24, 0x01       ; 1
+ bcc:  61 2f           mov     r22, r17
+ bce:  40 e0           ldi     r20, 0x00       ; 0
+ bd0:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ bd4:  18 30           cpi     r17, 0x08       ; 8
+ bd6:  c1 f7           brne    .-16            ; 0xbc8 <main+0x3c>
+ bd8:  81 e0           ldi     r24, 0x01       ; 1
+ bda:  60 91 30 01     lds     r22, 0x0130
+ bde:  4f e0           ldi     r20, 0x0F       ; 15
+ be0:  0e 94 8c 01     call    0x318   ; 0x318 <maxOne>
+ be4:  87 e6           ldi     r24, 0x67       ; 103
+ be6:  90 e0           ldi     r25, 0x00       ; 0
+ be8:  90 93 c5 00     sts     0x00C5, r25
+ bec:  80 93 c4 00     sts     0x00C4, r24
+ bf0:  86 e0           ldi     r24, 0x06       ; 6
+ bf2:  80 93 c2 00     sts     0x00C2, r24
+ bf6:  80 91 c1 00     lds     r24, 0x00C1
+ bfa:  88 61           ori     r24, 0x18       ; 24
+ bfc:  80 93 c1 00     sts     0x00C1, r24
+ c00:  80 91 c1 00     lds     r24, 0x00C1
+ c04:  80 68           ori     r24, 0x80       ; 128
+ c06:  80 93 c1 00     sts     0x00C1, r24
+ c0a:  78 94           sei
+ c0c:  8f ef           ldi     r24, 0xFF       ; 255
+ c0e:  80 93 9a 01     sts     0x019A, r24
+ c12:  80 91 8d 01     lds     r24, 0x018D
+ c16:  83 70           andi    r24, 0x03       ; 3
+ c18:  80 93 84 01     sts     0x0184, r24
+ c1c:  e2 e1           ldi     r30, 0x12       ; 18
+ c1e:  f1 e0           ldi     r31, 0x01       ; 1
+ c20:  07 c0           rjmp    .+14            ; 0xc30 <main+0xa4>
+ c22:  80 91 c0 00     lds     r24, 0x00C0
+ c26:  85 ff           sbrs    r24, 5
+ c28:  fc cf           rjmp    .-8             ; 0xc22 <main+0x96>
+ c2a:  90 93 c6 00     sts     0x00C6, r25
+ c2e:  31 96           adiw    r30, 0x01       ; 1
+ c30:  90 81           ld      r25, Z
+ c32:  99 23           and     r25, r25
+ c34:  b1 f7           brne    .-20            ; 0xc22 <main+0x96>
+ c36:  60 91 8d 01     lds     r22, 0x018D
+ c3a:  70 91 8e 01     lds     r23, 0x018E
+ c3e:  80 91 8f 01     lds     r24, 0x018F
+ c42:  90 91 90 01     lds     r25, 0x0190
+ c46:  20 e2           ldi     r18, 0x20       ; 32
+ c48:  3e e4           ldi     r19, 0x4E       ; 78
+ c4a:  40 e0           ldi     r20, 0x00       ; 0
+ c4c:  50 e0           ldi     r21, 0x00       ; 0
+ c4e:  0e 94 e5 06     call    0xdca   ; 0xdca <__udivmodsi4>
+ c52:  61 15           cp      r22, r1
+ c54:  71 05           cpc     r23, r1
+ c56:  81 05           cpc     r24, r1
+ c58:  91 05           cpc     r25, r1
+ c5a:  09 f5           brne    .+66            ; 0xc9e <main+0x112>
+ c5c:  0e 94 d3 01     call    0x3a6   ; 0x3a6 <redrawScreen>
+ c60:  0e 94 2d 02     call    0x45a   ; 0x45a <checkDown>
+ c64:  81 30           cpi     r24, 0x01       ; 1
+ c66:  31 f0           breq    .+12            ; 0xc74 <main+0xe8>
+ c68:  80 91 8c 01     lds     r24, 0x018C
+ c6c:  8f 5f           subi    r24, 0xFF       ; 255
+ c6e:  80 93 8c 01     sts     0x018C, r24
+ c72:  15 c0           rjmp    .+42            ; 0xc9e <main+0x112>
+ c74:  90 91 9b 01     lds     r25, 0x019B
+ c78:  80 91 91 01     lds     r24, 0x0191
+ c7c:  98 17           cp      r25, r24
+ c7e:  19 f4           brne    .+6             ; 0xc86 <main+0xfa>
+ c80:  9f 5f           subi    r25, 0xFF       ; 255
+ c82:  90 93 91 01     sts     0x0191, r25
+ c86:  80 91 91 01     lds     r24, 0x0191
+ c8a:  86 30           cpi     r24, 0x06       ; 6
+ c8c:  10 f0           brcs    .+4             ; 0xc92 <main+0x106>
+ c8e:  10 92 91 01     sts     0x0191, r1
+ c92:  80 91 91 01     lds     r24, 0x0191
+ c96:  80 93 9b 01     sts     0x019B, r24
+ c9a:  0e 94 6b 05     call    0xad6   ; 0xad6 <stopFigure>
+ c9e:  20 91 8d 01     lds     r18, 0x018D
+ ca2:  30 91 8e 01     lds     r19, 0x018E
+ ca6:  40 91 8f 01     lds     r20, 0x018F
+ caa:  50 91 90 01     lds     r21, 0x0190
+ cae:  2f 5f           subi    r18, 0xFF       ; 255
+ cb0:  3f 4f           sbci    r19, 0xFF       ; 255
+ cb2:  4f 4f           sbci    r20, 0xFF       ; 255
+ cb4:  5f 4f           sbci    r21, 0xFF       ; 255
+ cb6:  20 93 8d 01     sts     0x018D, r18
+ cba:  30 93 8e 01     sts     0x018E, r19
+ cbe:  40 93 8f 01     sts     0x018F, r20
+ cc2:  50 93 90 01     sts     0x0190, r21
+ cc6:  90 91 9d 01     lds     r25, 0x019D
+ cca:  80 91 9c 01     lds     r24, 0x019C
+ cce:  98 17           cp      r25, r24
+ cd0:  09 f4           brne    .+2             ; 0xcd4 <main+0x148>
+ cd2:  b1 cf           rjmp    .-158           ; 0xc36 <main+0xaa>
+ cd4:  80 91 9d 01     lds     r24, 0x019D
+ cd8:  80 93 9c 01     sts     0x019C, r24
+ cdc:  82 2f           mov     r24, r18
+ cde:  83 70           andi    r24, 0x03       ; 3
+ ce0:  80 93 91 01     sts     0x0191, r24
+ ce4:  80 91 9d 01     lds     r24, 0x019D
+ ce8:  83 34           cpi     r24, 0x43       ; 67
+ cea:  69 f4           brne    .+26            ; 0xd06 <main+0x17a>
+ cec:  0e 94 36 03     call    0x66c   ; 0x66c <checkRight>
+ cf0:  81 30           cpi     r24, 0x01       ; 1
+ cf2:  29 f0           breq    .+10            ; 0xcfe <main+0x172>
+ cf4:  80 91 85 01     lds     r24, 0x0185
+ cf8:  8f 5f           subi    r24, 0xFF       ; 255
+ cfa:  80 93 85 01     sts     0x0185, r24
+ cfe:  0e 94 d3 01     call    0x3a6   ; 0x3a6 <redrawScreen>
+ d02:  0e 94 05 01     call    0x20a   ; 0x20a <beep>
+ d06:  80 91 9d 01     lds     r24, 0x019D
+ d0a:  84 34           cpi     r24, 0x44       ; 68
+ d0c:  69 f4           brne    .+26            ; 0xd28 <main+0x19c>
+ d0e:  0e 94 bf 02     call    0x57e   ; 0x57e <checkLeft>
+ d12:  81 30           cpi     r24, 0x01       ; 1
+ d14:  29 f0           breq    .+10            ; 0xd20 <main+0x194>
+ d16:  80 91 85 01     lds     r24, 0x0185
+ d1a:  81 50           subi    r24, 0x01       ; 1
+ d1c:  80 93 85 01     sts     0x0185, r24
+ d20:  0e 94 d3 01     call    0x3a6   ; 0x3a6 <redrawScreen>
+ d24:  0e 94 05 01     call    0x20a   ; 0x20a <beep>
+ d28:  80 91 9d 01     lds     r24, 0x019D
+ d2c:  82 34           cpi     r24, 0x42       ; 66
+ d2e:  69 f4           brne    .+26            ; 0xd4a <main+0x1be>
+ d30:  0e 94 2d 02     call    0x45a   ; 0x45a <checkDown>
+ d34:  81 30           cpi     r24, 0x01       ; 1
+ d36:  29 f0           breq    .+10            ; 0xd42 <main+0x1b6>
+ d38:  80 91 8c 01     lds     r24, 0x018C
+ d3c:  8f 5f           subi    r24, 0xFF       ; 255
+ d3e:  80 93 8c 01     sts     0x018C, r24
+ d42:  0e 94 d3 01     call    0x3a6   ; 0x3a6 <redrawScreen>
+ d46:  0e 94 05 01     call    0x20a   ; 0x20a <beep>
+ d4a:  80 91 9d 01     lds     r24, 0x019D
+ d4e:  81 34           cpi     r24, 0x41       ; 65
+ d50:  91 f4           brne    .+36            ; 0xd76 <main+0x1ea>
+ d52:  0e 94 ad 03     call    0x75a   ; 0x75a <checkTurn>
+ d56:  81 30           cpi     r24, 0x01       ; 1
+ d58:  71 f0           breq    .+28            ; 0xd76 <main+0x1ea>
+ d5a:  80 91 8b 01     lds     r24, 0x018B
+ d5e:  83 30           cpi     r24, 0x03       ; 3
+ d60:  20 f4           brcc    .+8             ; 0xd6a <main+0x1de>
+ d62:  8f 5f           subi    r24, 0xFF       ; 255
+ d64:  80 93 8b 01     sts     0x018B, r24
+ d68:  02 c0           rjmp    .+4             ; 0xd6e <main+0x1e2>
+ d6a:  10 92 8b 01     sts     0x018B, r1
+ d6e:  0e 94 d3 01     call    0x3a6   ; 0x3a6 <redrawScreen>
+ d72:  0e 94 05 01     call    0x20a   ; 0x20a <beep>
+ d76:  10 92 9d 01     sts     0x019D, r1
+ d7a:  5d cf           rjmp    .-326           ; 0xc36 <main+0xaa>
+
+00000d7c <__udivmodhi4>:
+ d7c:  aa 1b           sub     r26, r26
+ d7e:  bb 1b           sub     r27, r27
+ d80:  51 e1           ldi     r21, 0x11       ; 17
+ d82:  07 c0           rjmp    .+14            ; 0xd92 <__udivmodhi4_ep>
+
+00000d84 <__udivmodhi4_loop>:
+ d84:  aa 1f           adc     r26, r26
+ d86:  bb 1f           adc     r27, r27
+ d88:  a6 17           cp      r26, r22
+ d8a:  b7 07           cpc     r27, r23
+ d8c:  10 f0           brcs    .+4             ; 0xd92 <__udivmodhi4_ep>
+ d8e:  a6 1b           sub     r26, r22
+ d90:  b7 0b           sbc     r27, r23
+
+00000d92 <__udivmodhi4_ep>:
+ d92:  88 1f           adc     r24, r24
+ d94:  99 1f           adc     r25, r25
+ d96:  5a 95           dec     r21
+ d98:  a9 f7           brne    .-22            ; 0xd84 <__udivmodhi4_loop>
+ d9a:  80 95           com     r24
+ d9c:  90 95           com     r25
+ d9e:  bc 01           movw    r22, r24
+ da0:  cd 01           movw    r24, r26
+ da2:  08 95           ret
+
+00000da4 <__divmodhi4>:
+ da4:  97 fb           bst     r25, 7
+ da6:  09 2e           mov     r0, r25
+ da8:  07 26           eor     r0, r23
+ daa:  0a d0           rcall   .+20            ; 0xdc0 <__divmodhi4_neg1>
+ dac:  77 fd           sbrc    r23, 7
+ dae:  04 d0           rcall   .+8             ; 0xdb8 <__divmodhi4_neg2>
+ db0:  e5 df           rcall   .-54            ; 0xd7c <__udivmodhi4>
+ db2:  06 d0           rcall   .+12            ; 0xdc0 <__divmodhi4_neg1>
+ db4:  00 20           and     r0, r0
+ db6:  1a f4           brpl    .+6             ; 0xdbe <__divmodhi4_exit>
+
+00000db8 <__divmodhi4_neg2>:
+ db8:  70 95           com     r23
+ dba:  61 95           neg     r22
+ dbc:  7f 4f           sbci    r23, 0xFF       ; 255
+
+00000dbe <__divmodhi4_exit>:
+ dbe:  08 95           ret
+
+00000dc0 <__divmodhi4_neg1>:
+ dc0:  f6 f7           brtc    .-4             ; 0xdbe <__divmodhi4_exit>
+ dc2:  90 95           com     r25
+ dc4:  81 95           neg     r24
+ dc6:  9f 4f           sbci    r25, 0xFF       ; 255
+ dc8:  08 95           ret
+
+00000dca <__udivmodsi4>:
+ dca:  a1 e2           ldi     r26, 0x21       ; 33
+ dcc:  1a 2e           mov     r1, r26
+ dce:  aa 1b           sub     r26, r26
+ dd0:  bb 1b           sub     r27, r27
+ dd2:  fd 01           movw    r30, r26
+ dd4:  0d c0           rjmp    .+26            ; 0xdf0 <__udivmodsi4_ep>
+
+00000dd6 <__udivmodsi4_loop>:
+ dd6:  aa 1f           adc     r26, r26
+ dd8:  bb 1f           adc     r27, r27
+ dda:  ee 1f           adc     r30, r30
+ ddc:  ff 1f           adc     r31, r31
+ dde:  a2 17           cp      r26, r18
+ de0:  b3 07           cpc     r27, r19
+ de2:  e4 07           cpc     r30, r20
+ de4:  f5 07           cpc     r31, r21
+ de6:  20 f0           brcs    .+8             ; 0xdf0 <__udivmodsi4_ep>
+ de8:  a2 1b           sub     r26, r18
+ dea:  b3 0b           sbc     r27, r19
+ dec:  e4 0b           sbc     r30, r20
+ dee:  f5 0b           sbc     r31, r21
+
+00000df0 <__udivmodsi4_ep>:
+ df0:  66 1f           adc     r22, r22
+ df2:  77 1f           adc     r23, r23
+ df4:  88 1f           adc     r24, r24
+ df6:  99 1f           adc     r25, r25
+ df8:  1a 94           dec     r1
+ dfa:  69 f7           brne    .-38            ; 0xdd6 <__udivmodsi4_loop>
+ dfc:  60 95           com     r22
+ dfe:  70 95           com     r23
+ e00:  80 95           com     r24
+ e02:  90 95           com     r25
+ e04:  9b 01           movw    r18, r22
+ e06:  ac 01           movw    r20, r24
+ e08:  bd 01           movw    r22, r26
+ e0a:  cf 01           movw    r24, r30
+ e0c:  08 95           ret
+
+00000e0e <_exit>:
+ e0e:  f8 94           cli
+
+00000e10 <__stop_program>:
+ e10:  ff cf           rjmp    .-2             ; 0xe10 <__stop_program>
diff --git a/compiled.map b/compiled.map
new file mode 100644 (file)
index 0000000..7569405
--- /dev/null
@@ -0,0 +1,434 @@
+Archive member included because of file (symbol)
+
+/usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodhi4.o)
+                              tetris.o (__udivmodhi4)
+/usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_divmodhi4.o)
+                              tetris.o (__divmodhi4)
+/usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodsi4.o)
+                              tetris.o (__udivmodsi4)
+/usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+                              /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o (exit)
+/usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_copy_data.o)
+                              tetris.o (__do_copy_data)
+/usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_clear_bss.o)
+                              tetris.o (__do_clear_bss)
+
+Allocating common symbols
+Common symbol       size              file
+
+screen              0x9               tetris.o
+prewRandomDigit     0x1               tetris.o
+oldu                0x1               tetris.o
+u                   0x1               tetris.o
+
+Memory Configuration
+
+Name             Origin             Length             Attributes
+text             0x00000000         0x00020000         xr
+data             0x00800060         0x0000ffa0         rw !x
+eeprom           0x00810000         0x00010000         rw !x
+fuse             0x00820000         0x00000400         rw !x
+lock             0x00830000         0x00000400         rw !x
+signature        0x00840000         0x00000400         rw !x
+*default*        0x00000000         0xffffffff
+
+Linker script and memory map
+
+Address of section .data set to 0x800100
+LOAD /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+LOAD tetris.o
+LOAD /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a
+
+.hash
+ *(.hash)
+
+.dynsym
+ *(.dynsym)
+
+.dynstr
+ *(.dynstr)
+
+.gnu.version
+ *(.gnu.version)
+
+.gnu.version_d
+ *(.gnu.version_d)
+
+.gnu.version_r
+ *(.gnu.version_r)
+
+.rel.init
+ *(.rel.init)
+
+.rela.init
+ *(.rela.init)
+
+.rel.text
+ *(.rel.text)
+ *(.rel.text.*)
+ *(.rel.gnu.linkonce.t*)
+
+.rela.text
+ *(.rela.text)
+ *(.rela.text.*)
+ *(.rela.gnu.linkonce.t*)
+
+.rel.fini
+ *(.rel.fini)
+
+.rela.fini
+ *(.rela.fini)
+
+.rel.rodata
+ *(.rel.rodata)
+ *(.rel.rodata.*)
+ *(.rel.gnu.linkonce.r*)
+
+.rela.rodata
+ *(.rela.rodata)
+ *(.rela.rodata.*)
+ *(.rela.gnu.linkonce.r*)
+
+.rel.data
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.gnu.linkonce.d*)
+
+.rela.data
+ *(.rela.data)
+ *(.rela.data.*)
+ *(.rela.gnu.linkonce.d*)
+
+.rel.ctors
+ *(.rel.ctors)
+
+.rela.ctors
+ *(.rela.ctors)
+
+.rel.dtors
+ *(.rel.dtors)
+
+.rela.dtors
+ *(.rela.dtors)
+
+.rel.got
+ *(.rel.got)
+
+.rela.got
+ *(.rela.got)
+
+.rel.bss
+ *(.rel.bss)
+
+.rela.bss
+ *(.rela.bss)
+
+.rel.plt
+ *(.rel.plt)
+
+.rela.plt
+ *(.rela.plt)
+
+.text           0x00000000      0xe12
+ *(.vectors)
+ .vectors       0x00000000       0x68 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+                0x00000000                __vectors
+                0x00000000                __vector_default
+ *(.vectors)
+ *(.progmem.gcc*)
+ *(.progmem*)
+                0x00000068                . = ALIGN (0x2)
+                0x00000068                __trampolines_start = .
+ *(.trampolines)
+ .trampolines   0x00000068        0x0 linker stubs
+ *(.trampolines*)
+                0x00000068                __trampolines_end = .
+ *(.jumptables)
+ *(.jumptables*)
+ *(.lowtext)
+ *(.lowtext*)
+                0x00000068                __ctors_start = .
+ *(.ctors)
+                0x00000068                __ctors_end = .
+                0x00000068                __dtors_start = .
+ *(.dtors)
+                0x00000068                __dtors_end = .
+ SORT(*)(.ctors)
+ SORT(*)(.dtors)
+ *(.init0)
+ .init0         0x00000068        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+                0x00000068                __init
+ *(.init0)
+ *(.init1)
+ *(.init1)
+ *(.init2)
+ .init2         0x00000068        0xc /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+ *(.init2)
+ *(.init3)
+ *(.init3)
+ *(.init4)
+ .init4         0x00000074       0x16 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_copy_data.o)
+                0x00000074                __do_copy_data
+ .init4         0x0000008a       0x10 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_clear_bss.o)
+                0x0000008a                __do_clear_bss
+ *(.init4)
+ *(.init5)
+ *(.init5)
+ *(.init6)
+ *(.init6)
+ *(.init7)
+ *(.init7)
+ *(.init8)
+ *(.init8)
+ *(.init9)
+ .init9         0x0000009a        0x8 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+ *(.init9)
+ *(.text)
+ .text          0x000000a2        0x4 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+                0x000000a2                __vector_22
+                0x000000a2                __vector_1
+                0x000000a2                __vector_24
+                0x000000a2                __vector_12
+                0x000000a2                __bad_interrupt
+                0x000000a2                __vector_6
+                0x000000a2                __vector_3
+                0x000000a2                __vector_23
+                0x000000a2                __vector_25
+                0x000000a2                __vector_11
+                0x000000a2                __vector_13
+                0x000000a2                __vector_17
+                0x000000a2                __vector_19
+                0x000000a2                __vector_7
+                0x000000a2                __vector_5
+                0x000000a2                __vector_4
+                0x000000a2                __vector_9
+                0x000000a2                __vector_2
+                0x000000a2                __vector_21
+                0x000000a2                __vector_15
+                0x000000a2                __vector_8
+                0x000000a2                __vector_14
+                0x000000a2                __vector_10
+                0x000000a2                __vector_16
+                0x000000a2                __vector_20
+ .text          0x000000a6      0xcd6 tetris.o
+                0x000000a6                setRXCIE_USART0
+                0x000000b2                init_USART0
+                0x000000cc                receive_1byte_USART0
+                0x000000da                transmit_1byte_USART0
+                0x000000ea                __vector_18
+                0x0000011e                transmit_str_USART0
+                0x00000138                transmit_4digit_USART0
+                0x00000194                delay_ms
+                0x000001d0                delay_ns
+                0x0000020a                beep
+                0x00000272                bleepBleepSound
+                0x000002e4                putByte
+                0x00000318                maxOne
+                0x00000372                moveLine
+                0x000003a6                redrawScreen
+                0x0000045a                checkDown
+                0x000004ec                checkStart
+                0x0000057e                checkLeft
+                0x0000066c                checkRight
+                0x0000075a                checkTurn
+                0x00000820                checkFullLine
+                0x0000095e                gameOver
+                0x00000ad6                stopFigure
+                0x00000b8c                main
+ .text          0x00000d7c        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodhi4.o)
+ .text          0x00000d7c        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_divmodhi4.o)
+ .text          0x00000d7c        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodsi4.o)
+ .text          0x00000d7c        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+ .text          0x00000d7c        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_copy_data.o)
+ .text          0x00000d7c        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_clear_bss.o)
+                0x00000d7c                . = ALIGN (0x2)
+ *(.text.*)
+ .text.libgcc   0x00000d7c       0x28 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodhi4.o)
+                0x00000d7c                __udivmodhi4
+ .text.libgcc   0x00000da4       0x26 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_divmodhi4.o)
+                0x00000da4                __divmodhi4
+                0x00000da4                _div
+ .text.libgcc   0x00000dca       0x44 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodsi4.o)
+                0x00000dca                __udivmodsi4
+ .text.libgcc   0x00000e0e        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+ .text.libgcc   0x00000e0e        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc   0x00000e0e        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_clear_bss.o)
+                0x00000e0e                . = ALIGN (0x2)
+ *(.fini9)
+ .fini9         0x00000e0e        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+                0x00000e0e                exit
+                0x00000e0e                _exit
+ *(.fini9)
+ *(.fini8)
+ *(.fini8)
+ *(.fini7)
+ *(.fini7)
+ *(.fini6)
+ *(.fini6)
+ *(.fini5)
+ *(.fini5)
+ *(.fini4)
+ *(.fini4)
+ *(.fini3)
+ *(.fini3)
+ *(.fini2)
+ *(.fini2)
+ *(.fini1)
+ *(.fini1)
+ *(.fini0)
+ .fini0         0x00000e0e        0x4 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+ *(.fini0)
+                0x00000e12                _etext = .
+
+.data           0x00800100       0x8a load address 0x00000e12
+                0x00800100                PROVIDE (__data_start, .)
+ *(.data)
+ .data          0x00800100        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+ .data          0x00800100       0x8a tetris.o
+                0x00800127                max7219_reg_digit0
+                0x00800128                max7219_reg_digit1
+                0x00800129                max7219_reg_digit2
+                0x0080012a                max7219_reg_digit3
+                0x0080012b                max7219_reg_digit4
+                0x0080012c                max7219_reg_digit5
+                0x0080012d                max7219_reg_digit6
+                0x0080012e                max7219_reg_digit7
+                0x0080012f                max7219_reg_decodeMode
+                0x00800130                max7219_reg_intensity
+                0x00800131                max7219_reg_scanLimit
+                0x00800132                max7219_reg_shutdown
+                0x00800133                max7219_reg_displayTest
+                0x00800134                figure
+                0x00800184                currentFigure
+                0x00800185                currentX
+                0x00800186                score
+ .data          0x0080018a        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodhi4.o)
+ .data          0x0080018a        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_divmodhi4.o)
+ .data          0x0080018a        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodsi4.o)
+ .data          0x0080018a        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+ .data          0x0080018a        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_copy_data.o)
+ .data          0x0080018a        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_clear_bss.o)
+ *(.data*)
+ *(.rodata)
+ *(.rodata*)
+ *(.gnu.linkonce.d*)
+                0x0080018a                . = ALIGN (0x2)
+                0x0080018a                _edata = .
+                0x0080018a                PROVIDE (__data_end, .)
+
+.bss            0x0080018a       0x14
+                0x0080018a                PROVIDE (__bss_start, .)
+ *(.bss)
+ .bss           0x0080018a        0x0 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+ .bss           0x0080018a        0x8 tetris.o
+                0x0080018a                max7219_reg_noop
+                0x0080018b                currentTurn
+                0x0080018c                currentY
+                0x0080018d                timer
+                0x00800191                randomDigit
+ .bss           0x00800192        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodhi4.o)
+ .bss           0x00800192        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_divmodhi4.o)
+ .bss           0x00800192        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_udivmodsi4.o)
+ .bss           0x00800192        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_exit.o)
+ .bss           0x00800192        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_copy_data.o)
+ .bss           0x00800192        0x0 /usr/lib/gcc/avr/4.3.4/avr5/libgcc.a(_clear_bss.o)
+ *(.bss*)
+ *(COMMON)
+ COMMON         0x00800192        0xc tetris.o
+                0x00800192                screen
+                0x0080019b                prewRandomDigit
+                0x0080019c                oldu
+                0x0080019d                u
+                0x0080019e                PROVIDE (__bss_end, .)
+                0x00000e12                __data_load_start = LOADADDR (.data)
+                0x00000e9c                __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit         0x0080019e        0x0
+                0x0080019e                PROVIDE (__noinit_start, .)
+ *(.noinit*)
+                0x0080019e                PROVIDE (__noinit_end, .)
+                0x0080019e                _end = .
+                0x0080019e                PROVIDE (__heap_start, .)
+
+.eeprom         0x00810000        0x0
+ *(.eeprom*)
+                0x00810000                __eeprom_end = .
+
+.fuse
+ *(.fuse)
+ *(.lfuse)
+ *(.hfuse)
+ *(.efuse)
+
+.lock
+ *(.lock*)
+
+.signature
+ *(.signature*)
+
+.stab           0x00000000      0x6b4
+ *(.stab)
+ .stab          0x00000000      0x6b4 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+
+.stabstr        0x00000000       0x54
+ *(.stabstr)
+ .stabstr       0x00000000       0x54 /usr/lib/gcc/avr/4.3.4/../../../avr/lib/avr5/crtm168.o
+
+.stab.excl
+ *(.stab.excl)
+
+.stab.exclstr
+ *(.stab.exclstr)
+
+.stab.index
+ *(.stab.index)
+
+.stab.indexstr
+ *(.stab.indexstr)
+
+.comment
+ *(.comment)
+
+.debug
+ *(.debug)
+
+.line
+ *(.line)
+
+.debug_srcinfo
+ *(.debug_srcinfo)
+
+.debug_sfnames
+ *(.debug_sfnames)
+
+.debug_aranges
+ *(.debug_aranges)
+
+.debug_pubnames
+ *(.debug_pubnames)
+
+.debug_info
+ *(.debug_info)
+ *(.gnu.linkonce.wi.*)
+
+.debug_abbrev
+ *(.debug_abbrev)
+
+.debug_line
+ *(.debug_line)
+
+.debug_frame
+ *(.debug_frame)
+
+.debug_str
+ *(.debug_str)
+
+.debug_loc
+ *(.debug_loc)
+
+.debug_macinfo
+ *(.debug_macinfo)
+OUTPUT(compiled.elf elf32-avr)
+LOAD linker stubs
diff --git a/flash168 b/flash168
new file mode 100755 (executable)
index 0000000..0d33d9d
--- /dev/null
+++ b/flash168
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# flashing script for Arduino bootloader (working via USB)
+
+CONF="/home/dmitry/Projects/Arduino/arduino-0011/hardware/tools/avrdude.conf"
+DUDE="/home/dmitry/Projects/Arduino/arduino-0011/hardware/tools/avrdude"
+
+sudo $DUDE -C $CONF -p m168 -U flash:w:compiled.hex -c stk500v1 -P /dev/ttyUSB0 -b 19200 -D 
+//avrdude -p m168 -P /dev/ttyUSB0 -c stk500v1 -b 19200 -F -u -U flash:w:blink.hex
+
diff --git a/make b/make
new file mode 100755 (executable)
index 0000000..b49b0c9
--- /dev/null
+++ b/make
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+rm -f compiled.hex compiled.lss compiled.eep compiled.elf compiled.map *.d *.o
+
+# -DBOARD=1
+export DEFINES="-mmcu=atmega168 -D F_CPU=4000000UL"
+
+avr-gcc $DEFINES -Wall -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums tetris.o  -c tetris.c
+avr-gcc $DEFINES -Wl,-Map=compiled.map tetris.o -o compiled.elf
+
+avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature  compiled.elf compiled.hex
+avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex compiled.elf compiled.eep
+avr-objdump -h -S compiled.elf > compiled.lss
+avr-objdump -h -d compiled.elf > compiled.lst
+rm -f *.o
+
+exit
diff --git a/tetris.c b/tetris.c
new file mode 100644 (file)
index 0000000..46cea34
--- /dev/null
+++ b/tetris.c
@@ -0,0 +1,629 @@
+/*
+ * TETRIS for AVR microcontrollers and cascading LED matrix based on MAX7219 driver
+ * Copyright (C) 2010 Dmitry Shalnov [interplaymedium.org]
+ * test it with "screen /dev/ttyUSB0" comand (control by kbd arrows)
+ * created for Interplaymediumâ„¢ AXON project
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+#include <avr/io.h>
+#include <avr/interrupt.h>
+
+// WIRING 
+// please change it according to your ARDUINO wiring
+// don't forget to place pull-up resisor between RESET and +5V pins to avoid board reset during UART transfer.
+
+#define DATAIN         3       
+#define LOAD   5       
+#define CLOCK  4       
+#define BEEPER         2       
+
+#define INUSE  1       // how many matrix you connect
+#define STARTX 4       // horisontal position od figure strat
+#define RAND_MAX   4
+
+// Some macros that make the code more readable
+
+#define output_low(port,pin) port &= ~(1<<pin)
+#define output_high(port,pin) port |= (1<<pin)
+#define set_input(portdir,pin) portdir &= ~(1<<pin)
+#define set_output(portdir,pin) portdir |= (1<<pin)
+
+#define FOSC    16000000
+#define BAUD    9600
+#define UBRR    FOSC/16/BAUD-1
+
+volatile unsigned char u, oldu;
+
+// ------------------------------------------- Set Receive Interrupt Enable ------------------------------------------- 
+
+void setRXCIE_USART0()
+{
+    UCSR0B |= _BV(RXCIE0);
+}
+
+// -------------------------------------------- Initialize USART0 -----------------------------------------------------
+
+void init_USART0 (unsigned int baud) {
+       UBRR0 = baud;                           // Set Baudrate
+       UCSR0C = (3<<UCSZ00);                   // Character Size 8 bit
+       UCSR0B |= _BV(RXEN0) | _BV(TXEN0);      // Receiver and Transmitter Enable
+}
+
+// -------------------------------------------- Receive 1 byte  Data --------------------------------------------------
+
+unsigned char receive_1byte_USART0 (void) {
+       loop_until_bit_is_set(UCSR0A, RXC0);
+       return UDR0;
+}
+
+// -------------------------------------------- Transmit 1 byte Data --------------------------------------------------
+
+void transmit_1byte_USART0 (unsigned char data) {
+       loop_until_bit_is_set(UCSR0A, UDRE0);
+       UDR0 = data;
+}
+
+// -------------------------------------------- Interrupt catch -------------------------------------------------------
+
+ISR(USART_RX_vect){ // USART RX interrupt
+       volatile unsigned char c;
+       c = UDR0;
+       //transmit_1byte_USART0('w');
+       //output_high(PORTB, LED1);
+       //if (c<'5' && c>'0') 
+       u = c;
+}
+
+// --------------------------------------------- Transmit String Data -------------------------------------------------
+
+void transmit_str_USART0 (char *str) {
+       while (*str != 0) {
+               transmit_1byte_USART0(*str);
+               *str++;
+       }
+}
+
+// --------------------------------------------- Transmit Four-Digit Integer ------------------------------------------
+
+void transmit_4digit_USART0 (int num) {
+       unsigned char temp;
+       int digit = 1000;
+
+       while (digit != 0) {
+               temp = num / digit;
+               transmit_1byte_USART0('0'+temp);
+               num -= (digit*temp);
+               digit /= 10;
+       }
+}
+
+// --------------------------------------------- Delays --------------------------------------------------------------
+
+void delay_ms (uint16_t ms) {
+       uint16_t delay_count = FOSC / 17500 * 0.1;
+       volatile uint16_t i;
+       while (ms != 0) {
+               for (i=0; i != delay_count; i++);
+               ms--;
+       }
+}
+
+void delay_ns(uint16_t ms) {
+       uint16_t delay_count = FOSC / 17500 * 0.01;
+       volatile uint16_t i;
+       while (ms != 0) {
+               for (i=0; i != delay_count; i++);
+               ms--;
+       }
+}
+
+// --------------------------------------------- Sounds -------------------------------------------------------------
+
+void beep (){
+       for(uint8_t a=0; a<100; a++){
+               output_high(PORTB, BEEPER);
+               delay_ms(1);
+               output_low(PORTB, BEEPER);
+               delay_ms(1);
+       }
+}
+
+void bleepBleepSound (){
+       uint8_t a, b;
+       for(b=1; b<40; b+=10) for(a=0; a<100; a++){
+               output_high(PORTB, BEEPER);
+               delay_ns(b);
+               output_low(PORTB, BEEPER);
+               delay_ns(b);
+       }
+}
+
+// --------------------------------- LED MATRIX code ---------------------------------------------------------------
+
+// define max7219 registers
+uint8_t max7219_reg_noop        = 0x00;
+uint8_t max7219_reg_digit0      = 0x01;
+uint8_t max7219_reg_digit1      = 0x02;
+uint8_t max7219_reg_digit2      = 0x03;
+uint8_t max7219_reg_digit3      = 0x04;
+uint8_t max7219_reg_digit4      = 0x05;
+uint8_t max7219_reg_digit5      = 0x06;
+uint8_t max7219_reg_digit6      = 0x07;
+uint8_t max7219_reg_digit7      = 0x08;
+uint8_t max7219_reg_decodeMode  = 0x09;
+uint8_t max7219_reg_intensity   = 0x0a;
+uint8_t max7219_reg_scanLimit   = 0x0b;
+uint8_t max7219_reg_shutdown    = 0x0c;
+uint8_t max7219_reg_displayTest = 0x0f;
+
+
+void putByte(uint8_t data) {
+       uint8_t i = 8;
+       uint8_t mask;
+       while(i > 0) {
+               mask = 0x01 << (i - 1);      // get bitmask
+               //digitalWrite( CLOCK, LOW);   // tick
+               output_low(PORTB, CLOCK);       // tick
+               if (data & mask){            // choose bit
+                       //digitalWrite(DATAIN, HIGH);// send 1
+                       output_high(PORTB, DATAIN);
+               } else {
+                    //digitalWrite(DATAIN, LOW); // send 0
+                       output_low(PORTB, DATAIN);
+               }
+               //digitalWrite(CLOCK, HIGH);   // tock
+               output_high(PORTB, CLOCK);
+               --i;                         // move to lesser bit
+       }
+}
+
+void maxOne(uint8_t maxNr, uint8_t reg, uint8_t col) {    
+       //maxOne is for adressing different MAX7219's, 
+       //whilele having a couple of them cascaded
+       int c = 0;
+       //digitalWrite(load, LOW);  // begin     
+       output_low(PORTB, LOAD);
+
+       for ( c = INUSE; c > maxNr; c--) {
+               putByte(0);    // means no operation
+               putByte(0);    // means no operation
+       }
+
+       putByte(reg);  // specify register
+       putByte(col);//((data & 0x01) * 256) + data >> 1); // put data 
+
+       for ( c = maxNr-1; c >= 1; c--) {
+               putByte(0);    // means no operation
+               putByte(0);    // means no operation
+       }
+
+       //digitalWrite(load, LOW); // and load da shit
+       output_low(PORTB, LOAD);
+       //digitalWrite(load,HIGH); 
+       output_high(PORTB, LOAD);
+}
+
+/*
+void putPixel (uint8_t maxNr, uint8_t x, uint8_t y){
+       //maxOne is for adressing different MAX7219's, 
+       //whilele having a couple of them cascaded
+
+       int c = 0;
+       //digitalWrite(load, LOW);  // begin     
+       output_low(PORTB, LOAD);
+
+       for ( c = INUSE; c > maxNr; c--) {
+               putByte(0);    // means no operation
+               putByte(0);    // means no operation
+       }
+
+       putByte(y);  // specify register
+       putByte(0x01 << (8-x));//((data & 0x01) * 256) + data >> 1); // put data 
+
+       for ( c = maxNr-1; c >= 1; c--) {
+               putByte(0);    // means no operation
+               putByte(0);    // means no operation
+       }
+
+       //digitalWrite(load, LOW); // and load da shit
+       output_low(PORTB, LOAD);
+       //digitalWrite(load,HIGH); 
+       output_high(PORTB, LOAD);
+}
+*/
+
+// --------------------------------- Figures ----------------------------------------------------------------------
+
+uint8_t        figure[5][4][4] = {     
+                               {
+                                       {
+                                       0b00011000,
+                                       0b00011000,
+                                       0b00000000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00011000,
+                                       0b00011000,
+                                       0b00000000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00011000,
+                                       0b00011000,
+                                       0b00000000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00011000,
+                                       0b00011000,
+                                       0b00000000,
+                                       0b00000000
+                                       }
+                               },  
+                               {
+                                       {
+                                       0b00110000,
+                                       0b00011000,
+                                       0b00000000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00010000,
+                                       0b00110000,
+                                       0b00100000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00110000,
+                                       0b00011000,
+                                       0b00000000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00010000,
+                                       0b00110000,
+                                       0b00100000,
+                                       0b00000000
+                                       }
+                               }, 
+                               {
+                                       {
+                                       0b00000000,
+                                       0b00111000,
+                                       0b00001000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00011000,
+                                       0b00010000,
+                                       0b00010000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00100000,
+                                       0b00111000,
+                                       0b00000000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00010000,
+                                       0b00010000,
+                                       0b00110000,
+                                       0b00000000
+                                       }
+                               }, 
+                               {
+                                       {
+                                       0b00010000,
+                                       0b00111000,
+                                       0b00000000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00010000,
+                                       0b00110000,
+                                       0b00010000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00000000,
+                                       0b00111000,
+                                       0b00010000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00010000,
+                                       0b00011000,
+                                       0b00010000,
+                                       0b00000000
+                                       }
+                               }, 
+                               {
+                                       {
+                                       0b00000000,
+                                       0b00111100,
+                                       0b00000000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00010000,
+                                       0b00010000,
+                                       0b00010000,
+                                       0b00010000
+                                       },
+                                       {
+                                       0b00000000,
+                                       0b00111100,
+                                       0b00000000,
+                                       0b00000000
+                                       },
+                                       {
+                                       0b00010000,
+                                       0b00010000,
+                                       0b00010000,
+                                       0b00010000
+                                       }
+                               }
+                         };
+
+// ----------------------------------------- Init variables ------------------------------------------------------------
+
+uint8_t        screen[ INUSE*8 + 1 ];
+
+uint8_t currentFigure = 4;
+uint8_t currentTurn = 0;
+uint8_t currentY = 0;
+uint8_t currentX = STARTX;
+uint32_t timer = 0;
+uint8_t randomDigit = 0;
+uint8_t prewRandomDigit;
+uint8_t score = 1; 
+
+// ------------------------------------------ Game logic ---------------------------------------------------------------
+
+uint8_t moveLine(uint8_t L, uint8_t X){
+       if (X <= 4 ) L <<= 4 - X; else L >>= X - 4;
+       return L;
+}
+
+void redrawScreen (void) {
+       uint8_t lineToPlace = 0b00000000;
+       for (uint8_t matrix=0;  matrix < INUSE; matrix++) for (uint8_t line=0; line<8; line++){
+               if (matrix*8 + line >= currentY && matrix*8 + line < currentY+4) lineToPlace = figure[currentFigure][currentTurn][matrix*8 +line - currentY]; else lineToPlace = 0b00000000;
+               //lineToPlace = 0b11111111; else lineToPlace = 0b00000000;
+               //if (currentX <= 4 ) lineToPlace <<= 4 - currentX; else lineToPlace >>= currentX - 4;
+               lineToPlace = moveLine(lineToPlace, currentX);
+               maxOne(matrix+1, line+1, screen[matrix*8 + line] | lineToPlace );       
+       }
+}
+
+uint8_t checkDown (void){
+       uint8_t lineToPlace = 0b00000000;
+       for (uint8_t line = 0; line<4; line ++){
+               lineToPlace = figure[currentFigure][currentTurn][line];
+               lineToPlace = moveLine(lineToPlace, currentX);
+               if ( (lineToPlace & screen[ currentY+1 + line]) != 0) return 1;
+       }
+       return 0;
+}
+
+uint8_t checkStart (void){
+       uint8_t lineToPlace = 0b00000000;
+       for (uint8_t line = 0; line<4; line ++){
+               lineToPlace = figure[currentFigure][currentTurn][line];
+               lineToPlace = moveLine(lineToPlace, currentX);
+               if ( (lineToPlace & screen[ currentY + line]) != 0) return 1;
+       }
+       return 0;
+}
+
+uint8_t checkLeft (void){
+       uint8_t lineToPlace = 0b00000000;
+       uint8_t tmpLineToPlace;
+       for (uint8_t line = 0; line<4; line ++){
+               lineToPlace = figure[currentFigure][currentTurn][line];
+               tmpLineToPlace = moveLine(lineToPlace, currentX);
+               if ( (tmpLineToPlace & 0b10000000) != 0) return 1;
+               lineToPlace = moveLine(lineToPlace, currentX - 1);
+               if ( (lineToPlace & screen[ currentY + line]) != 0) return 1;
+       }
+       return 0;
+}
+
+uint8_t checkRight (void){
+       uint8_t lineToPlace = 0b00000000;
+       uint8_t tmpLineToPlace;
+       for (uint8_t line = 0; line<4; line ++){
+               lineToPlace = figure[currentFigure][currentTurn][line];         
+               tmpLineToPlace = moveLine(lineToPlace, currentX);
+               if ( (tmpLineToPlace & 0b00000001) != 0) return 1;
+               lineToPlace = moveLine(lineToPlace, currentX + 1);
+               if ( (lineToPlace & screen[ currentY + line]) != 0) return 1;
+       }
+       return 0;
+}
+
+uint8_t checkTurn (void){
+       uint8_t lineToPlace = 0b00000000;
+       uint8_t testTurn; 
+       if (currentTurn < 3) testTurn =  currentTurn + 1; else testTurn = 0;
+       for (uint8_t line = 0; line<4; line ++){
+               lineToPlace = figure[currentFigure][testTurn][line];
+               lineToPlace = moveLine(lineToPlace, currentX);
+               //if ( (lineToPlace & 0b00000001) != 0) return 1; 
+               if (currentFigure == 1 && currentX == 8) return 1;
+               if (currentFigure == 2 && currentX == 1) return 1;
+               if (currentFigure == 2 && currentX == 8) return 1;
+               if (currentFigure == 3 && currentX == 1) return 1;
+               if (currentFigure == 3 && currentX == 8) return 1;   
+               if (currentFigure == 4 && currentX == 2) return 1;
+               if (currentFigure == 4 && currentX == 7) return 1; 
+               if ( (lineToPlace & screen[ currentY + line]) != 0) return 1;
+       }
+       return 0;
+}
+
+void checkFullLine (void) {
+       uint8_t a = 0;
+       uint8_t matrix = currentY / (INUSE*8);
+       uint8_t remainder = currentY % (INUSE*8);
+       for (uint8_t line = 0; line<4; line ++) if (line + currentY < INUSE*8) {
+               if (screen[line + currentY] == 0b11111111) {
+                       for (a = 0; a<3; a++) {
+                               
+                               maxOne(matrix + 1, line + remainder +1, 0b00000000 );
+                               //screen[line + currentY] = 0b11111111; 
+                               //redrawScreen ();
+                               delay_ms(1000);
+                               maxOne(matrix + 1, line + remainder +1, 0b11111111 );   
+                               //screen[line + currentY] = 0b00000000;
+                               //redrawScreen ();
+                               delay_ms(1000);
+                       }
+                       for (a = line + currentY; a>0; a--) screen[a] = screen[a-1];
+                       bleepBleepSound ();
+                       transmit_str_USART0("Score: "); 
+                       transmit_4digit_USART0(score++);
+                       transmit_str_USART0("        \r");
+               }
+       }
+}
+
+void gameOver () {
+       uint8_t ornament[3] = {0b00100100, 0b10010010, 0b01001001};
+       uint8_t offset = 0;
+       for (uint8_t matrix=0;  matrix < INUSE; matrix++) for (uint8_t line=0; line<8; line++){
+               maxOne(matrix + 1, line + 1, 0b11111111 );
+               delay_ms(500);
+       }
+       for (uint8_t matrix=0;  matrix < INUSE; matrix++) for (uint8_t line=0; line<8; line++){
+               maxOne(matrix + 1, line + 1, 0b00000000 );
+               screen[ matrix*8 + line] = 0b00000000;
+               delay_ms(500);
+       }
+
+       while (u == 0) {
+               for (uint8_t matrix=0;  matrix < INUSE; matrix++) for (uint8_t line=0; line<8; line++){
+                       maxOne(matrix + 1, line + 1, ornament[(line+offset) % 3] );
+               }
+               if (offset < 2) offset ++; else offset = 0;
+               delay_ms(1000);
+       }
+       
+       score = 1;
+       transmit_str_USART0("Score: 0000        \r");
+
+       currentFigure = (uint8_t)((uint16_t)timer % (uint16_t)5);
+       currentTurn = 0;
+       
+}
+
+void stopFigure (void) {
+       uint8_t lineToPlace = 0b00000000;
+       for (uint8_t line = 0; line<4; line ++) {
+               lineToPlace = figure[currentFigure][currentTurn][line];
+               lineToPlace = moveLine(lineToPlace, currentX);
+               screen[line + currentY] |= lineToPlace;
+       }
+       checkFullLine ();
+       currentY = 0;
+       currentTurn = 0;
+       currentX = STARTX;
+       currentFigure = randomDigit;
+
+       if (checkStart () != 1) redrawScreen (); else gameOver();
+}
+
+// --------------------------------- MAIN -----------------------------------------------------------------------
+
+int main(void) {
+
+       // initialize the direction of PORTD to be output
+
+       set_output(DDRB, DATAIN);  
+       set_output(DDRB, LOAD);
+       set_output(DDRB, CLOCK);
+       set_output(DDRB, BEEPER);
+
+       // initiation of the max 7219
+       for (uint8_t matrix=0; matrix < INUSE; matrix++) {
+               maxOne(matrix+1, max7219_reg_scanLimit, 0x07);      
+               maxOne(matrix+1, max7219_reg_decodeMode, 0x00);                 // using a led matrix, not digits
+               maxOne(matrix+1, max7219_reg_shutdown, 0x01);                   // not in shutdown mode
+               maxOne(matrix+1, max7219_reg_displayTest, 0x00);                // no display test
+               for (uint8_t line=0; line<8; line ++) maxOne(matrix+1, line+1, 0);      // empty registers, turn all LEDs off 
+               maxOne(matrix+1, max7219_reg_intensity, 0x0f & 0x0f);           // the first 0x0f is the value you can set (range: 0x00 to 0x0f)
+       }
+                                                       
+       init_USART0(UBRR);  // initialize USART0
+       setRXCIE_USART0();
+       sei();
+
+       screen[ INUSE*8 ] = 0b11111111;                                         // bottom border for checking
+       currentFigure = (uint8_t)((uint16_t)timer % (uint16_t)RAND_MAX);
+       transmit_str_USART0("Score: 0000        \r");
+
+       while (1) {
+               if (timer % 20000 == 0) {
+                       redrawScreen ();
+                       if (checkDown() != 1) currentY ++; else {
+                               if (prewRandomDigit == randomDigit) randomDigit++;
+                               if (randomDigit > RAND_MAX+1) randomDigit = 0;
+                               prewRandomDigit = randomDigit;
+                               stopFigure ();
+                       }
+               }
+               timer ++;
+               if (u != oldu){
+                       oldu = u;
+                       randomDigit = (uint8_t)((uint16_t)timer % (uint16_t)RAND_MAX);  
+                       //transmit_1byte_USART0(timer);
+                       //transmit_4digit_USART0(u);    
+                       if (67 == u) {
+                               //transmit_str_USART0(" RIGHT \r");
+                               if (checkRight () != 1) currentX ++;
+                               redrawScreen ();
+                               beep ();
+                       }
+                       if (68 == u) {
+                               //transmit_str_USART0(" LEFT  \r");
+                               if (checkLeft () != 1) currentX --;
+                               redrawScreen ();
+                               beep ();
+                       }
+                       if (66 == u) {
+                               //transmit_str_USART0(" DOWN  \r");
+                               if (checkDown() != 1) currentY ++; 
+                               redrawScreen ();
+                               beep ();
+                       }
+                       if (65 == u) {
+                               //transmit_str_USART0(" UP    \r");
+                               if (checkTurn () != 1) { 
+                                       if (currentTurn < 3) currentTurn ++; else currentTurn = 0;
+                                       redrawScreen ();
+                                       beep ();
+                               }
+                       }
+                       u = 0;
+               }
+       }
+
+}
+
Contact me: dev (at) shalnoff (dot) com
PGP fingerprint: A6B8 3B23 6013 F18A 0C71 198B 83D8 C64D 917A 5717